admin

SQL选择匹配记录存在且没有匹配记录的位置

sql

我需要交叉引用2个表。

tb1内是booking_ref,投资者

tb2内是booking_ref,投资者,成本

问题是如果没有任何费用,表2中就不会创建任何记录

所以我有以下查询…

SELECT 
  tb1.booking_ref, tb1.investor, tb2.cost 
FROM 
  tb1, tb2 
WHERE 
  tb1.booking_ref = tb2.booking_ref 
AND 
  tb1.investor = tb2.investor 
AND 
  tb1.investor = ''12345''

这会显示tb2中存在匹配的booking_ref的所有预订,但我还需要显示没有匹配的booking_ref的预订

有任何想法吗??


阅读 138

收藏
2021-06-07

共1个答案

admin

在这种情况下,您需要左连接。

SELECT 
  tb1.booking_ref, tb1.investor, tb2.cost 
FROM 
  tb1
      left join tb2 
          on tb1.booking_ref = tb2.booking_ref
              and tb1.investor = tb2.investor 
WHERE tb1.investor = ''12345''
2021-06-07