我有两张 table
人
name id
man1 456
man2 123
man3 789
笔记
content id
testing 123
hello 456
我有两个查询,如果该人的注释存在,则从表 people
中选择记录。
SELECT * FROM PEOPLE WHERE ID IN(SELECT ID FROM NOTES)
name id
man1 456
man2 123
和
SELECT * FROM PEOPLE WHERE ID NOT IN(SELECT ID FROM NOTES)
name id
man3 789
我想在结果集中创建一列(而不是在实际的表中),并根据注释是否存在来设置字段的值。
name id does_note_exist
man1 456 yes
man2 123 yes
man3 789 no
执行此操作的适当语法是什么?我正在寻找这样的东西:
IF ID IN (SELECT ID FROM NOTES)
does_note_exist = yes
IF ID NOT IN (SELECT ID FROM NOTES)
does_note_exist = no
最佳答案
您需要一个LEFT OUTER JOIN
:
SELECT
p.id,
p.name,
CASE WHEN n.id IS NULL THEN 'no' ELSE 'yes' END AS does_note_exist
FROM people p
LEFT OUTER JOIN notes n
ON n.id = p.id
GROUP BY n.id
关于mysql - 如何在结果集中添加一列并在该字段中设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10034043/