0

listbox1 と listbox2 の 2 つのリストボックスと、DB に table1 と table2 の 2 つのテーブルがあります。どちらのテーブルにも「色」という列が含まれています。table1 のすべての「色」を listbox1 に表示したいのですが、これは可能です。しかし、listbox2 では、Table2 の「色」を表示したいのですが、Table1 の「色」には存在してはなりません。では、そのクエリをどのように作成すればよいでしょうか。

これは私が試してきたものであり、機能していません:

SELECT Table2.Colour
FROM Table1 CROSS JOIN Table2
WHERE  (Tabel1.Colour! = Table2.colour)

エラーメッセージは —multi-part identifier Tabel2.Colour could not be found

4

2 に答える 2

0

お使いのバージョンの RDBMS がEXCEPT句を実装している場合は、次の操作を実行できます。

SELECT Colour FROM Table2
EXCEPT 
SELECT Colour FROM Table1

これが JOIN より優れていると言っているわけではありません。ちょうど別のオプション。

于 2013-02-25T16:27:24.077 に答える
0

これは次のように動作するはずLEFT JOINです:

SELECT Table2.Colour 
FROM Table2 
   LEFT JOIN Table1 ON Tabel1.Colour = Table2.colour
WHERE Table1.Colour IS NULL

NOT INまたはを使用することもできますが、私は/構文NOT EXISTSを好みます。LEFT JOINIS NULL

例えば:

SELECT Colour 
FROM Table2 
WHERE Colour NOT IN (SELECT Colour FROM Table1)
于 2013-02-25T16:16:19.060 に答える