8

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);

前もって感謝します!

4

4 に答える 4

6

を取り除くためにEXCEPT、条件を組み合わせて 2 番目の条件を無効にすることができます。

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));
于 2013-04-12T20:53:50.840 に答える
4
SELECT A.x FROM A
EXCEPT
SELECT B.x FROM B

に対応

SELECT A.x FROM A 
LEFT JOIN B 
ON A.x = B.x 
WHERE B.x IS NULL
于 2014-09-02T20:51:39.530 に答える
1

MS Access > Create > Query Wizardで不一致検索ウィザードを使用すると、次の結果が得られます。

ユニオンは、サブクエリを使用する代わりにいくつかのテーブルをユニオンするために使用した別のアクセスクエリです

SELECT TableMain.Field1
FROM TableMain LEFT JOIN [Union] ON TableMain.[Field1] = Union.[field1]
WHERE (((Union.field1) Is Null));
于 2015-02-15T12:13:09.783 に答える
0

ここでは明確な例ではありませんが、フェッチされた 2 つのテーブルを UNION し、そのユニオンから、特定のフィールドの組み合わせのインスタンスが 2 つ未満のペアを選択することを検討してください。これは、フィールドの組み合わせで同じ値を持つレコードのインスタンスが各テーブルに複数ある場合、これらのレコードは同じであり、結果セットから除外できることを意味します。そうでない場合、それらは 1 つのテーブルに固有であり、他のテーブルと一致しない選択されたテーブルからのレコードのみがフェッチされます。貧乏人の「EXCEPT」KWのようなものです。

于 2016-06-12T16:58:17.147 に答える