我该如何表达这个MySQL JOINs查询?

时间:2014-04-19 13:12:56

标签: mysql sql join

我有以下表格:

sh_feeds
    => id
    => feed_id

sh_subscriptions
    => id
    => user_id
    => feed_id

我正在尝试生成的查询是:

  

sh_feeds中选择feed_idfeed_id匹配的所有内容   sh_subscriptions对应于匹配的user_id   $user_id

有点混乱,但希望这很清楚。

我知道会有很多加入,我用this explainer刷新了我的记忆,但我似乎仍然无法使其发挥作用。

3 个答案:

答案 0 :(得分:2)

应该相当容易,像这样:

内部联接确保只包含在sh_subscriptions中也会出现feed_id的行。

SELECT f.* FROM sh_feeds f
INNER JOIN sh_subscriptions s ON f.feed_id = s.feed_id
WHERE s.user_id = $user_id;

答案 1 :(得分:2)

试试这个

SELECT * FROM sh_feeds F
INNER JOIN sh_subscriptions S ON F.feed_id = S.feed_id
WHERE S.user_id = $user_id;

答案 2 :(得分:0)

SELECT sh.id ,sh.feed_id
FROM sh_feeds sh
INNER JOIN sh_subscriptions ss ON ss.feed_id = sh.feed_id
WHERE sh.user_id = '$user_id'