如何删除此错误,* sqlite:///TMDB.db(sqlite3.OperationalError)不明确的列名:genres.genre_id?

7ajki6be  于 2023-04-21  发布在  SQLite
关注(0)|答案(1)|浏览(113)

问题10
数据库中有多少部电影既是爱情片又是喜剧片?
选项:
373 484 262 595
这是我的代码:

SELECT movies.title
FROM movies
LEFT JOIN genremap ON movies.movie_id = genremap.movie_id

UNION

SELECT genres.genre_id
FROM genres
LEFT JOIN genres ON genremap.genre_id = genres.genre_id
WHERE genres.genre_name = "Comedy" OR genres.genre_name = "Romance" 
ORDER BY movies.title
LIMIT 50;

我也试过了,但它返回了一个错误:

SELECT m.title, g.genre_id, gs.genre_name
FROM genremap AS g
LEFT JOIN movies AS m ON m.movie_id = g.movie_id

UNION

SELECT gs.genre_id
FROM genres AS gs
LEFT JOIN genres ON g.genre_id = gs.genre_id
WHERE gs.genre_name = "Comedy" OR gs.genre_name = "Romance" 
ORDER BY movies.title
LIMIT 50;
laik7k3q

laik7k3q1#

genres中查找喜剧和浪漫的值,使用它们来计算genremap中的电影:

select count(1) from (
  select movie_id from genremap gm join genres g on g.genre_id = gm.genre_id 
  where genre_name in ('Comedy', 'Romance')
  group by movie_id having count(1) = 2)

dbfiddle demo
如果genremap可能有孤立行,您也可以加入电影。

相关问题