想要搜索两个表 Python SQL
want to search both tables Python SQL
我使用 python 创建了一个数据库,并用数据填充了几个表。我有一段时间没有进行 sql 查询,无法在网上找到我要找的东西。我的桌子
cursor.execute("""CREATE TABLE IF NOT EXISTS Movies (
Title varchar,
Plot varchar,
ReleaseDate integer,
RunTime integer,
Subs integer,
Location varchar
)""")
cursor.execute("""CREATE TABLE IF NOT EXISTS TvShows (
Title varchar,
Plot varchar,
ReleaseDate varchar,
NumberOfSeasons integer,
RunTime integer,
Subs Boolean,
Location varchar
)""")
这是我要搜索的两个表格。我想获取每个条目的标题和位置。我只想将它一个接一个地放在列表中。例如
title, location
title, location
title, location
等,直到它显示了两个表中的每个条目。这就是我所拥有的,它很好用,但不是我想要的。
query = "SELECT Movies.Title, TvShows.Title, Movies.Location, TvShows.Location FROM Movies INNER JOIN TvShows ON Movies.Location = TvShows.Location"
#"WHERE Location='F Drive'"
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
如果我没看错你的问题,你需要两个表之间的 union,而不是 join:
query = """SELECT Title, Location FROM Movies
UNION ALL
SELECT Title, Location FROM TvShows"""
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
请注意,在上述查询中引入计算列可能效果很好。也就是说,我们可以尝试使用这个版本:
SELECT Title, Location, 'Movie' AS Type FROM Movies
UNION ALL
SELECT Title, Location, 'TV show' FROM TvShows;
两个表中的共同列是位置。以下查询将起作用。
SELECT Movies, Title, Location,
FROM Movies
INNER JOIN TvShows ON Movies.Location = TvShows.Location
WHERE Location='F Drive'
我使用 python 创建了一个数据库,并用数据填充了几个表。我有一段时间没有进行 sql 查询,无法在网上找到我要找的东西。我的桌子
cursor.execute("""CREATE TABLE IF NOT EXISTS Movies (
Title varchar,
Plot varchar,
ReleaseDate integer,
RunTime integer,
Subs integer,
Location varchar
)""")
cursor.execute("""CREATE TABLE IF NOT EXISTS TvShows (
Title varchar,
Plot varchar,
ReleaseDate varchar,
NumberOfSeasons integer,
RunTime integer,
Subs Boolean,
Location varchar
)""")
这是我要搜索的两个表格。我想获取每个条目的标题和位置。我只想将它一个接一个地放在列表中。例如
title, location
title, location
title, location
等,直到它显示了两个表中的每个条目。这就是我所拥有的,它很好用,但不是我想要的。
query = "SELECT Movies.Title, TvShows.Title, Movies.Location, TvShows.Location FROM Movies INNER JOIN TvShows ON Movies.Location = TvShows.Location"
#"WHERE Location='F Drive'"
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
如果我没看错你的问题,你需要两个表之间的 union,而不是 join:
query = """SELECT Title, Location FROM Movies
UNION ALL
SELECT Title, Location FROM TvShows"""
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
请注意,在上述查询中引入计算列可能效果很好。也就是说,我们可以尝试使用这个版本:
SELECT Title, Location, 'Movie' AS Type FROM Movies
UNION ALL
SELECT Title, Location, 'TV show' FROM TvShows;
两个表中的共同列是位置。以下查询将起作用。
SELECT Movies, Title, Location,
FROM Movies
INNER JOIN TvShows ON Movies.Location = TvShows.Location
WHERE Location='F Drive'