Ms-Access

從另一個表中排除表的數據

  • November 9, 2018

是否可以創建查詢並詢問以下內容?我有兩個表(每個表都有一個包含數據的列),我想獲得第一個表中的所有數據減去第二個表中的數據。

在標準 SQL 中,您可以很容易地做到這一點,除了:

SELECT
 Column1
FROM
 Table1

EXCEPT

SELECT
 Column2
FROM
 Table2;

但是,MS Access 不支持 EXCEPT。相反,您可以使用anti-join。有多種方法可以實現反連接。一種是使用 EXISTS 謂詞:

SELECT
 Column1
FROM
 Table1 AS t1
WHERE
 NOT EXISTS
 (
   SELECT
     *
   FROM
     Table2 AS t2
   WHERE
     t1.Column1 = t2.Column2
 );

與 Access 一起使用的另一種解決方法是LEFT JOIN在排除表中的 ID 變數的條件上使用IS NULL

SELECT IDvar
   FROM Table1 
LEFT JOIN Table2 
ON Table1.IDvar = Table2.IDvar
   WHERE Table2.IDvar IS NULL;

引用自:https://dba.stackexchange.com/questions/148300