MINUS
/EXCEPT
SELECT *
FROM CARS_PRIMARY
WHERE CAR_COLOR IN (
SELECT CAR_COLOR
FROM CARS_PRIMARY
EXCEPT
SELECT CAR_COLOR
FROM CARS_SECONDARY
);
說明:
我們首先得到一組中所有顏色的CARS_PRIMARY
但不是在CARS_SECONDARY
,然後從CARS_PRIMARY
選擇所有列有該顏色。
我用EXCEPT
,但如果MINUS
的作品,你可以使用它。
LEFT JOIN
SELECT CP.*
FROM CARS_PRIMARY CP
LEFT JOIN CARS_SECONDARY CS
ON (CP.CAR_COLOR = CS.CAR_COLOR)
WHERE CS.CAR_COLOR IS NULL;
說明:
我們做外部聯接從CARS_PRIMARY
到CARS_SECONDARY
的顏色,然後丟棄具有CARS_SECONDARY
值的所有行。
NOT IN
SELECT *
FROM CARS_PRIMARY
WHERE CAR_COLOR NOT IN (
SELECT CAR_COLOR
FROM CARS_SECONDARY
);
說明
我們選擇CARS_PRIMARY
所有列在顏色不是從CARS_SECONDARY
的顏色組。
NOT EXISTS
SELECT *
FROM CARS_PRIMARY CP
WHERE NOT EXISTS (
SELECT *
FROM CARS_SECONDARY CS
WHERE CS.CAR_COLOR = CP.CAR_COLOR
);
說明
我們選擇CARS_PRIMARY
所有列在顏色不存在CARS_SECONDARY
。
來源
2014-02-21 15:13:39
SQB
SQL Server有減號我想你想時除外。 – Mihai
我會看看它是否有效,並在返回選定結果時將其標記爲已回答。 – ConfusedDeer
@Mihai我有MS SQL Server 2008 R2和MINUS工作。 – ConfusedDeer