哪个MySQL JOIN适合这个?

时间:2014-04-17 15:27:58

标签: mysql sql

我有三张桌子:

  1. 用户(身份证,电子邮件,密码)
  2. Feed_items(id,title,feed_id)
  3. 订阅(id,user_id,feed_id)
  4. 我尝试做的是通过将用户中的id和Feed_items中的feed_id映射到user_id并{来获取用户订阅的所有Feed项订阅中的{1}}。

    因为有三张桌子,所以我不知道在这里使用哪些连接。

3 个答案:

答案 0 :(得分:2)

你可以这样内连接

select 
u.id,
u.email,
f.title
from Subscriptions s 
inner join Users u on u.id = s.user_id
inner join Feed_items f on f.feed_id = s.feed_id

答案 1 :(得分:0)

你需要加入两个表,

select * from a a1, a a2, a a3 where a1.a = a2.a and a2.a = a3.a

重要的是保持你想要的逻辑:

select * from Users a,Feed_items b, Subscriptions C 
where a.id = c.user_id and b.id = c. feed_id

答案 2 :(得分:0)

尝试这样的事情:

SELECT *
FROM subscriptions s
INNER JOIN feed_items f ON s.feed_id = f.id
WHERE s.user_id = 'yourUserId'

或者,如果您还想要用户信息:

SELECT *
FROM users u
INNER JOIN subscriptions s ON u.id = s.user_id
INNER JOIN feed_items f ON s.feed_id = f.id
WHERE u.id = 'yourUserId'