使用MySQL。
下面是我的表格结构。
表:A
aId(PK) aValue1 aValue2
----------------------------------
1 value-a1 value-b1
2 value-a2 value-b2
3 value-a3 value-b3
4 value-a4 value-b4
表:B
bId(PK) aId(FK) bValue1 bValue2
-----------------------------------------------------
1 1 val-1 value-1
2 1 val-2 value-2
3 2 val-3 value-3
如何在单个查询中实现以下结果。 如果表中存在相关记录,我想要表中的所有记录:A和标记值对每条记录:B 我尝试了INNER JOIN,左/右但没有帮助。
RESULT
aId aValue1 aValue2 bId (flag if record exist Y else N)
-----------------------------------------------
1 value-a1 value-b1 Y
2 value-a2 value-b2 Y
3 value-a3 value-b3 N
4 value-a4 value-b4 N
我的查询:这回复了我超过4行。这是错误的
SELECT
c.* , if( d.bId is NULL,'N','Y')
from a c
LEFT JOIN b d ON a.aId = d.aId
答案 0 :(得分:1)
只需添加条件即可打印Y
或N
标记。
SELECT DISTINCT c.* , IF(d.bId is null, 'Y', 'N')
FROM tableA c
LEFT JOIN tableB d ON a.aId = d.aId