左边加入有限的右表

时间:2014-06-08 22:27:55

标签: sql

我有卡片,时间表,用户。每个时间表都有用户和卡的外键。假设我有100张卡和2个用户,每个用户有10个时间表。我想要一组100张卡片加入10个用户的10个时间表。当我尝试将我的数据集限制为1个用户时,我最终只有10行。如何设置查询以实现我想要的目标?

1 个答案:

答案 0 :(得分:0)

基本上你想要的东西是:

select *
from cards c
left join 
(
  select *
  from schedules s
  join users u on s.UserID = u.ID
  where u.ID = 1
) x on c.ID = x.CardID

这样你的where子句就不会干扰左连接。您必须将列名更改为您正在使用的任何名称,并且可能会明确列出子查询中的列,因此不存在重叠列名称的任何问题。