私は次のテーブルを持っていますAttributes
* AttId * CustomerId * Class * Code *
| 1 | 1 | 1 | AA |
| 2 | 1 | 1 | AB |
| 3 | 1 | 1 | AC |
| 4 | 1 | 2 | AA |
| 5 | 1 | 2 | AB |
| 6 | 1 | 3 | AB |
| 7 | 2 | 1 | AA |
| 8 | 2 | 1 | AC |
| 9 | 2 | 2 | AA |
| 10 | 3 | 1 | AB |
| 11 | 3 | 3 | AB |
| 12 | 4 | 1 | AA |
| 13 | 4 | 2 | AA |
| 14 | 4 | 2 | AB |
| 15 | 4 | 3 | AB |
それぞれClass
の 、Code
ペアリングは特定の を表しAttribute
ます。
ペアリングにリンクされていcustomers
ないものをすべて返すクエリを作成しようとしています。Attribute
Class = 1, Code = AB
Customer Id
これは値 2 と 4を返します。
書き始めましたSelect Distinct A.CustomerId From Attributes A Where (A.Class = 1 and A.Code = 'AB')
が、クエリを書いていることに気付き停止しました。また、括弧内の句が満たされてはならないSQL
ことを示すために括弧の前に配置できる演算子がありません。
私は何が欠けていますか?または、どのオペレーターを見ればよいですか?
編集:
ペアリングへのリンクがないものCustomers
(つまり、個別の顧客 ID)のみを返すクエリを作成しようとしています。Attribute
Class = 1, Code = AB
Customer Id
テーブルには行が含まれていないため、これは値 2 と 4 のみです。
* AttId * CustomerId * Class * Code *
| x | 2 | 1 | AB |
| x | 4 | 1 | AB |
タイトルを変更:
Sqlクエリで「Where Not(a=x and b=x)」を書く方法
に:
次の "Where Not(a=x and b=x)" を満たしていない個別の値を見つけるための SQL クエリの書き方
前のタイトルはそれ自体が質問であったため、質問の詳細が余分な次元を追加し、混乱を招きました.