我有两个表,tableA和tableB。 它们都有列(vehicle_make和vehicle_model)。
我需要来自tableA的车辆的所有品牌/型号,而不是表B中的。
基本上我需要找到新的品牌和型号。 tableB目前我在我的项目中使用,tableA是美国所有车辆的通用数据。
答案 0 :(得分:0)
您可以使用NOT IN
运算符。
SELECT DISTINCT vehicle_make, vehicle_model
FROM tableA
WHERE (vehicle_make || vehicle_model) NOT IN
(SELECT DISTINCT (vehicle_make || vehicle_model)
FROM tableB)
答案 1 :(得分:0)
使用coorlated子查询:通常效率最高的存在。
SELECT vehicle_make, vehicle_model
FROM tableA A
WHERE Not Exists (SELECT *
FROM tableB
WHERE A.vehicle_make = B.Vehicle_make
and A.vehicle_model = B.Vehicle_model
使用外部联接(如果您需要表B中的数据存在的记录...就像每个品牌/型号的B记录数一样
SELECT A.vehicle_make, A.vehicle_model, count(B.*)
FROM tableA A
LEFT JOIN tableB B
on A.vehicle_make = B.Vehicle_make
and A.vehicle_model = B.Vehicle_model
WHERE B.Vehicle_make is null
GROUP BY A.vehicle_make, A.vehicle_model
In
有效(除非你可以有空值)
答案 2 :(得分:0)
select a.*
from TableA a
left outer join TableB b
on a.vehicle_make = b.vehicle_make
and a.vehicle_model = b.vehicle_model
where b.vehicle_make is null