表1
id name
1 john
2 mary
3 bill
4 carrie
表2
id thing
1 ball
2 socks
表连接
id name_fk thing_fk
1 1 1
2 4 2
我想要一个查询,该查询从 tableJoin 中选择 table1 中的所有名称和“table2 中存在关系”列,如下所示:
表格结果:
columnName columnRelationshipExists
john YES
mary NO
bill NO
carrie YES
最佳答案
可以使用相关子查询:
SELECT name, EXISTS(SELECT * FROM tableJoin WHERE tableJoin.name_fk = table1.id)
FROM table1;
或者分组外连接:
SELECT table1.name, COUNT(tableJoin.name_fk) > 0
FROM table1 LEFT JOIN tableJoin ON tableJoin.name_fk = table1.id
GROUP BY table1.name;
在 sqlfiddle 上查看它们.
关于mysql - 如果关系存在或不存在,请选择 TRUE 或 FALSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21009165/