【发布时间】:2010-11-16 03:02:14
【问题描述】:
我有一种情况,我有一个标题表 (t1) 和另一个表,其中包含多个链接,这些链接以一对多的关系引用这些标题 (t2)。
我想要的是返回的标题的完整列表,并带有一个标志,该标志指示是否有与之关联的特定链接。
左加入和分组方式:
SELECT
t1.id
, t1.title
, t2.link_id AS refId
FROM
t1
LEFT JOIN t2
ON (t1.id = t2.title_id)
GROUP BY t1.id;
这很接近,因为它给了我 refId 列中的第一个 link_id 或 NULL。
现在,如果我有一个特定的 link_id 而不是让 t2 遍历整个数据集,我该如何约束结果?
如果我添加一个 WHERE 子句,例如:
WHERE t2.link_id = 123
我只获得了 link_id 匹配的少数记录,但我仍然需要在 refId 列中返回的完整标题集,除非 link_id = 123。
希望有人能帮忙
【问题讨论】: