クエリの結果に関連するすべてのカテゴリidをどのように返しますか? I以下のクエリで結果に基づいて空のカテゴリを削除しますか?
items_cats: (many to many)
product_id | category_id
====================
1 | 1
1 | 2
1 | 4
1 | 7
2 | 1
2 | 3
2 | 4
2 | 7
3 | 1
3 | 3
3 | 4
3 | 8
は3 CATEGORY_IDと7
をCATEGORY_ID含むすべての製品IDを取得しかし、私はまた、(オプション)がまだ選択にのproducs_id基盤を持っているCATEGORY_ID年代知りたい:
たとえば、私はこのクエリを返す(コード例に基づいて)したい:
-product_id = 2
-category_idさん:7、3、4、
1本を使用して、私はおそらく、クエリをlimetしたいですよ1ページあたりの最大アイテム数。私は
コード、これまでに得たveは:猫のidのための緩いクエリで
SELECT
DISTINCT t1.product_id, t1.category_id
FROM
items_cats t1
INNER JOIN
items_cats t1b
ON t1.product_id =t1b.product_id
WHERE
t1.category_id=3 AND
t1b.category_id=7
問題:もちろん
SELECT
e1.category_id
FROM
drinks_ingredients e1
WHERE
e1.category_id=2
それは2を返しますが、私はそれを返すのが好き1、2、 4、7
他の方法で仕事をしていますが、これを多くの製品やカテゴリで効率的にするにはどうすればよいですか?これらのクエリを組み合わせることはできますか。
SELECT DISTINCT
t1.category_id
FROM items_cats t1
WHERE t1.product_id = 2
この 'iid'列がどのようなものです:
product_id
は、前の表にある場合 はその後、我々はただ、すべてのcategory_id
を選択しますか? –は間違いでしたが、それはあなたがあなたの解決のためにあなたにタンク – Hank12312