有人可以导出并解释
TableResult
中以下结果的 SQL 查询吗?
TableA TableB TableResult
Id | Function Id | Function Id | Function | Compare
---|---------- ---|---------- ----|----------|---------
1 | code1 1 | code1 1 | code1 | true
2 | code2 2 | code4 2 | code2 | false
3 | code3 3 | code5 3 | code3 | false
4 | code4 4 | code4 | true
有两张桌子,
TableA
和TableB
。 每个表中的 Function
列都是唯一的。
TableA
中的全部数据应包含在ResultTable
中。如果 TableB
Function
等于 TableA
函数,则 ResultTable
Compare
列必须为 true;否则就是假的。
如何在 SQL 中达到预期的结果?
你可以用
EXISTS
来做到这一点:
select a.*,
exists (select 1 from TableB b where b.function = a.function) compare
from TableA a
或:
select a.*,
case
when exists (select 1 from TableB b where b.function = a.function) then 'true'
else 'false'
end compare
from TableA a
查看演示。
使用
LEFT JOIN
并测试是否存在匹配。
SELECT a.*, IF(b.id IS NULL, 'false', 'true') AS compare
FROM tableA AS a
LEFT JOIN tableB AS b ON a.function = b.function