【问题标题】:Android getting data from joined tablesAndroid 从连接表中获取数据
【发布时间】:2013-05-05 12:27:32
【问题描述】:

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

我有表格 Movie 和 Category,它们看起来像这样,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 又是动作的电影(即蝙蝠侠和铁人)中获得 DISTINCT 标题?

【问题讨论】:

    标签: android sql sqlite


    【解决方案1】:

    您可以使用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

    【讨论】:

    • 感谢您的回答!必须稍微破解 Android API 才能使其正常工作,但它确实有效:)。
    • 错误投反对票,无法撤销。给出的答案是适当的,并且是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 2012-12-11
    • 2021-10-22
    • 2021-10-16
    相关资源
    最近更新 更多