Android从连接表中获取数据

时间:2013-05-05 12:27:32

标签: android sql sqlite

我遇到了如何从两个表中检索一些数据的问题。

我有表格电影和类别,它们看起来像这样,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标题?

1 个答案:

答案 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

SQL Fiddle Demo