1

カラーテーブルと関係のある製品テーブルがあります

製品には多くの色があります... 例: 製品 A: 赤、緑、青、黄。

少なくとも赤と緑 (動的) を含む製品を選択するにはどうすればよいですか?

例:

Product: RED GREEN - PASS
Product: RED GREEN YELLOW - PASS
Product: RED YELLOW - FAIL

結合テーブル ソリューションまたは独立したサブクエリのみを優先する

この問題は 、AND 条件を使用した 1 対多の検索に関連しています。

根本から取り組むようにしています。

前もって感謝します

4

1 に答える 1

4

このようなものが動作するはずです

SELECT product.name
  FROM product
       JOIN color USING (product_id)
 WHERE color.name IN ('red', 'green')
 GROUP BY product.name
HAVING COUNT(DISTINCT color.name) = 2

ここで、HAVING句はリスト内の項目数を指定します。したがって、赤、緑、黄色の製品が必要な場合は、クエリを次のように変更します。

SELECT product.name
  FROM product
       JOIN color USING (product_id)
 WHERE color.name IN ('red', 'green', 'yellow')
 GROUP BY product.name
HAVING COUNT(DISTINCT color.name) = 3
于 2012-07-10T23:47:47.163 に答える