标题表
| titleId | title |
1 test5
2 test3
订阅表
| userId | titleId |
1 1
在这种情况下,用户1订阅了标题test5。
我想得到什么: 返回标题,如果它们具有指定用户的匹配行,则显示该标题。例如,对于用户1:
title | subscribed
test5 1
test3 -
我想出了这个:
SELECT title.id, title.title, subscribe.userId FROM title JOIN subscribe ON title.id = subscribe.uesrId
where subscribe.userId = 1;
title | subscribed
test5 1
我也想在行下面
test3 -
答案 0 :(得分:1)
我想你只想要left join
:
SELECT t.id, t.title, s.userId
FROM title t LEFT JOIN
subscribe s
ON t.id = s.titleId AND s.userId = 1;
请注意,WHERE
条件现在必须进入ON
子句。
此外,使用表别名使查询更容易编写和阅读。
JOIN
条件应该在titleid
而不是userid
上。
Here是上述查询的SQL小提琴。