如何使用LEFT JOIN查找表中是否缺少数据

时间:2018-12-31 22:55:06

标签: mysql sql

我需要连接两个表以确定特定表中是否缺少VIN。

我正在与LEFT JOIN合作。不幸的是,我只能提取两个表中的数据。

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

我试图弄清楚如何检查table2 vin列中的特定VIN,而不是table1 vin列中的特定VIN。我认为我搞砸的是'=',但无法确定执行此查询的最佳方法。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

通常,此类问题的答案是将条件移至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' ); 
  

我试图弄清楚如何检查table2 vin列中的特定VIN,而不是table1 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' ); 
相关问题