我有 2 个表要连接。
表 1
是一个主表,包含一组唯一的行。
ID DESCRIPTION
01 Alpha
02 Gamma
03 Delta
04 Beta
表 2
是一个包含许多行的明细表,其中只有一些行与主表匹配。
ID INFO MASTER_ID
0001 abc 02
0002 def 02
0004 xyz 01
0005 mno 04
我想 JOIN 表以产生以下结果:
Alpha "has detail"
Gamma "has detail"
Delta "does not have detail"
Beta "has detail"
而不是:
Alpha "has detail"
Gamma "has detail"
Gamma "has detail"
Delta "does not have detail"
Beta "has detail"
后面的输出返回 Gamma 两次,我只希望它返回一次。
我尝试了 LEFT JOIN、RIGHT JOIN、INNER JOIN,但都没有产生我想要的结果。
感谢您的帮助。
最佳答案
使用 LEFT JOIN
可能你遗漏了什么
SELECT CONCAT(a. description, IF(b.master_ID IS NOT NULL, ' has detail',' does not have detail'))
FROM table1 a
LEFT JOIN (SELECT DISTINCT master_ID FROM table2) b
ON a.ID = b.master_ID
关于mysql - 如何加入 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13161907/