我遇到了如何从两个表中检索一些数据的问题。
我有表格电影和类别,它们看起来像这样,MOVIE在MOVIEID上是FK:
Movie
-----
_ID TITLE MOVIEID
-----------------
1 BATMAN 123
2 TWILIGHT 234
3 IRONMAN 345
Category
--------
_ID TITLE MOVIE
------------------
1 SCI-FI 123
2 ACTION 123
3 CRIME 123
4 ROMANCE 234
5 SCI-FI 234
6 SCI-FI 345
7 ACTION 345
从此我想获得SCI-FI和ACTION的电影。在我加入MOVIEID = MOVIE的表格后:
BATMAN SCI-FI
BATMAN ACTION
BATMAN CRIME
TWILIGHT ROMANCE
TWILIGHT SCI-FI
IRONMAN SCI-FI
IRONMAN ACTION
如何仅从SCI-FI和ACTION(即蝙蝠侠和铁人)的电影中获取DISTINCT标题?
答案 0 :(得分:0)
您可以使用COUNT
聚合和HAVING
子句来完成此操作:
SELECT M.MovieId, M.Title
FROM Movie M
JOIN Category C ON M.MovieId = C.Movie
WHERE C.Title IN ('SCI-FI','ACTION')
GROUP BY M.MovieId, M.Title
HAVING COUNT(DISTINCT C.Title) = 2