使用MySQL。在另一个表中存在设置标志值记录的基础
下面是我的表格结构。
表:一个
aId(PK) aValue1 aValue2
----------------------------------
1 value-a1 value-b1
2 value-a2 value-b2
3 value-a3 value-b3
4 value-a4 value-b4
表:乙
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,左/右但没有帮助。
结果
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
为什么你的左连接不起作用?这是正确的解决方案。你能证明你的尝试吗?将它添加到你的问题上。 –
@JorgeCampos是正确的,只要使用if(bid为NULL,'N','Y')为Y或N选择 – developerCK
添加SQL查询属性。问题是..获取冗余数据 – fresher