如何使用left join查找表中是否缺少数据

5vf7fwbs  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(381)

这个问题在这里已经有答案了

返回输入值的默认结果(2个答案)
两年前关门了。
我需要连接两个表以确定特定表中是否缺少VIN。
我在用左join。不幸的是,我只能提取两个表中的数据。

SELECT vin 
FROM   table1.vins 
       LEFT JOIN table2.tbl2_vins 
              ON table2.tbl2_vins.vin = table1.vins.vin 
WHERE  table2.tbl2_vins = ( "5yfbprhe2jp757613" );

我正在尝试找出如何检查表2 vin列中的特定vin,而不是表1 vin列中的特定vin。我想我搞错的是“=”,但无法确定执行此查询的最佳方式。

gwbalxhn

gwbalxhn1#

通常,这类问题的答案是将条件移到 on 条款。
但是,所有列看起来都是相同的。这可能会满足您的需求:

SELECT t1.vin, (t2.vin is not null) as present_in_t2
FROM table1.vins t1 LEFT JOIN
     table2.tbl2_vins t2
     ON t2.vin = t1.vin
WHERE t1.vin IN ( '5yfbprhe2jp757613' );

我正在尝试找出如何检查表2 vin列中的特定vin,而不是表1 vin列中的特定vin。
如果这是你想要的,那就用 not exists :

SELECT t2.vin
FROM table2.tbl2_vins t2
WHERE NOT EXISTS (SELECT 1
                  FROM table1.vins t1 
                  WHERE t2.vin = t1.vin
                 ) AND
      t2.vin IN ( '5yfbprhe2jp757613' );
xmq68pz9

xmq68pz92#

SELECT vin 
FROM   table2.vins 
       LEFT JOIN table1.tbl1_vins 
              ON table2.tbl2_vins.vin = table1.vins.vin 
WHERE  table1.tbl1_vins = is null;

其他方法是使用“减号”和“不在(选择…)”。

相关问题