访问替代EXCEPT子句

Ari*_*lsp 8 sql ms-access

如何在ms访问中获得与下面的SQL代码相同的结果?它不承认该EXCEPT条款......

SELECT DISTINCT 
       P.Name, 
       T.Training
  FROM Prof AS P, 
       Training_done AS TC, 
       Trainings AS T
 WHERE (P.Name Like '*' & NameProf & '*') 
   AND (P.Primary_Area = T.Cod_Area)
EXCEPT
SELECT DISTINCT 
       P.Name, 
       T.Training
  FROM Prof AS P, 
       Training_done AS TC, 
       Trainings AS T
 WHERE (P.Name Like '*' & NameProf & '*') 
   AND (P.Cod_Prof = TC.Cod_Prof);
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Tri*_*mon 6

为了摆脱EXCEPT你,你可以结合条件,否定第二个:

SELECT DISTINCT 
       P.Name, 
       T.Training
  FROM Prof AS P, 
       Training_done AS TC, 
       Trainings AS T
 WHERE ((P.Name Like '*' & NameProf & '*') AND
        (P.Primary_Area = T.Cod_Area)) 
   AND NOT ((P.Name Like '*' & NameProf & '*') AND
            (P.Cod_Prof = TC.Cod_Prof));
Run Code Online (Sandbox Code Playgroud)


DBS*_*DBS 5

SELECT A.x FROM A
EXCEPT
SELECT B.x FROM B
Run Code Online (Sandbox Code Playgroud)

对应于

SELECT A.x FROM A 
LEFT JOIN B 
ON A.x = B.x 
WHERE B.x IS NULL
Run Code Online (Sandbox Code Playgroud)

  • 根据[this](http://www.mssqltips.com/sqlservertip/2779/ways-to-compare-and-find-differences-for-sql-server-tables-and-data/)文章`EXCEPT`子句还将发现差异,而不仅仅是“NULL”条件。 (2认同)