想要搜索两个表 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'