2016-03-30 28 views
3

私は以下のような状況に陥りました。MySQL - 1つのタグに関連付けられているが他のタグには関連付けられていないアイテムを探しています

  1. タグが付いたアイテムがあります。
  2. これらのタグはカテゴリAとカテゴリBに属します。
  3. カテゴリでタグを検索したいと思います。
  4. アイテムに両方のカテゴリのタグが付いている場合、それらは欲しくないでしょう。
 
    +---------+--------+--------------+ 
    | Item ID | Tag ID | Tag Category | 
    +---------+--------+--------------+ 
    |  1 |  1 | A   | 
    |  1 |  2 | A   | 
    |  1 |  3 | B   | 
    |  2 |  1 | A   | 
    |  2 |  2 | A   | 
    |  3 |  3 | B   | 
    +---------+--------+--------------+ 

私は私のクエリを実行するので、私はあなたがsub-queryを使用することによって、これを達成することができます項目2.

+0

はミスを犯し、それは項目2項目2が2個のタグを持って返す必要がありますし、両方のタグは、カテゴリAに属しています

が、これは試してみてください。 – user1555434

答えて

0

を取り戻す必要があります。それはない、カテゴリBタグを持っている

select * from t1 
where `Item ID` in 
    (select `Item ID` from t1 
    group by `Item ID` 
    having COUNT(DISTINCT `Tag Category`) < 2) 
    and `Tag Category` = 'A'; 
関連する問題