2016-06-14 65 views
0

我有一個關於數據庫系統中MINUS操作的問題。如果我想執行MINUS操作,是否強制兩個表應具有相同類型的主鍵/複合鍵?在SQL中使用查詢執行MINUS操作

我正在執行MINUS操作使用普通查詢,而不是操作員直接。所以爲了做到這一點,僅僅比較兩個表中的主鍵並執行MINUS操作就足夠了嗎?或者我需要比較行中的所有值嗎?

+1

減號不是標準的SQL。標準SQL terrm是EXCEPT。我假設你正在使用Oracle?如果你包含你的表格和示例數據,這個問題會更好。 –

回答

1

所以爲了做到這一點,僅僅比較兩個表中的主鍵並執行MINUS操作就足夠了嗎?或者我需要比較行中的所有值嗎?

MINUS operation in Oracle將返回「所有不同的行被第一個查詢選中但不是第二個」所以它與主鍵無關 - 它將查看所​​有列中的值。

如果您只是想比較主鍵,那麼帶有子查詢的NOT INNOT EXISTS運算符可能更實用。

+0

因此,如果我們單獨比較主鍵(然後獲取相應的行)而不是整行中的值,結果是否仍然相同? – Sri

+0

不一定 - 它取決於所有其他列是否相等,因爲主鍵相同。 –