我需要连接两个表以确定特定表中是否缺少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。我认为我搞砸的是'=',但无法确定执行此查询的最佳方法。
答案 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' );