このような質問がいくつかあるようですが、まったく同じものはないので、次のようになります。
元のテーブルの 2 つのフィールドに等しい 2 つのフィールドを持つ別のテーブルの行があるテーブルの行を削除する方法を見つける必要があります。(次の例では、次のようになります。@All.Stall = @Grouped.Stall および @All.Fruit = @Grouped.Fruit を持つ @All の行を削除する方法を見つける必要があります)
例えば:
@All: 行を削除するテーブル:
Stall Fruit
-------------------
John Apples
John Pears
John Pineapple
Mary Apples
Mary Apples
Mary Pears
Mary Pineapple
@Grouped: 削除する行を取得するテーブル:
Stall Fruit
-------------------
Mary Apples
結果のテーブルは次のようになります。
Stall Fruit
-------------------
John Apples
John Pears
John Pineapple
Mary Pears
Mary Pineapple
以下を含む 2 つの行に注意してください。リンゴはなくなりました。
私の人生では、これを行う方法を理解することはできず、リンゴを含む3行すべてを削除し、ジョン | 1行を残さないようにすることしかできません。リンゴ。
2 つの一時テーブルを作成するためのクエリを次に示します。
@All - 行を削除するテーブル
@Grouped - @All から削除するためにルックアップするフィールドを含むテーブル
DECLARE @All TABLE(
Stall varchar(10),
Fruit varchar(10),
StallFruitID int
)
DECLARE @Grouped TABLE(
Stall varchar(10),
Fruit varchar(10)
)
INSERT INTO @All (Stall,Fruit,StallFruitID) VALUES('John','Apples',1)
INSERT INTO @All (Stall,Fruit,StallFruitID) VALUES('John','Pears',1)
INSERT INTO @All (Stall,Fruit,StallFruitID) VALUES('John','Pineapple',1)
INSERT INTO @All (Stall,Fruit,StallFruitID) VALUES('Mary','Apples',1)
INSERT INTO @All (Stall,Fruit,StallFruitID) VALUES('Mary','Apples',2)
INSERT INTO @All (Stall,Fruit,StallFruitID) VALUES('Mary','Pears',1)
INSERT INTO @All (Stall,Fruit,StallFruitID) VALUES('Mary','Pineapple',1)
INSERT INTO @Grouped (Stall,Fruit) VALUES('Mary','Apples')