3

これらは 2 つのテーブルであり、2 FruitFruit_typesのテーブル間に am:n 関係があるため fruit_type_fruit、上記の主キーを持つ3 番目のテーブルがありますtwo tables。テーブルはこんな感じ

Fruit
ID    NAME    
1    A
2    B
3    C

Fruit_type
ID    LABEL
1    CITRIC
2    DRUPES
3    UNCATALOGUED

Fruit_type_Fruit
Fruit_id    Fruit_type
1        1
1        2
1        3
2        1
3        3

問題文: 一部の果物は、カテゴリ (つまり、ラベル) を持っていても、 としてラベルを取得し Uncataloguedます。

例:-
A は、次のラベルを取得します: 柑橘類、核果、未カタログ。

    B has    citric ,

    C has    Uncatalogued. 

ここで、適切なラベルを持つがカタログ化されていないラベルを持つすべてのレコードを削除するクエリが必要です。上記の例では

A record which is uncatalogued should be deleted and not

A    Citric and    Drupes neither

C    Uncatalogued. 
4

1 に答える 1

2

このようなものはどうですか

SQLフィドルデモ

DELETE ftf
FROM fruit_type_fruit ftf
WHERE Fruit_type_ID = 3
AND Fruit_ID IN
    (
            SELECT *
            FROM (
                    SELECT DISTINCT Fruit_ID
                    FROM fruit_type_fruit f 
                    WHERE f.Fruit_type_ID = 3
             ) ss
            WHERE Fruit_ID IN (
                    SELECT *
                    FROM (
                    SELECT DISTINCT Fruit_ID
                    FROM fruit_type_fruit f 
                    WHERE f.Fruit_type_ID <> 3
             ) s)
  )
于 2012-10-08T04:39:58.060 に答える