1

これは、テーブルの beautymart_product_categories です。

ここに画像の説明を入力

私がやりたいことは、製品がカテゴリ:307 とカテゴリ:383 にある Virticemart_product_id を選択することです。そのようなもの:(私が達成しようとしているものの例として、「AND」式が完全に間違って入力されていることはわかっています)。

SELECT * 
FROM uhhu_virtuemart_products_en_gb AS a 
INNER JOIN uhhu_virtuemart_product_categories AS b ON a.virtuemart_product_id=b.virtuemart_product_id 
WHERE b.virtuemart_category_id=307 AND b.virtuemart_category_id=383

それを達成するためのSQLの方法はありますか?新しいテーブルを作成し、何らかの形で関係を作る必要があるかもしれません.コーディング。前もって感謝します。

編集: products_en_gb テーブルも追加します:

ここに画像の説明を入力

4

2 に答える 2

2

これを試して:

SELECT * 
FROM uhhu_virtuemart_products_en_gb AS a 
WHERE a.virtuemart_category_id IN (307, 383)
GROUP BY a.virtuemart_product_id 
HAVING COUNT(1) = 2
于 2015-01-05T09:14:14.203 に答える
1

2 つのカテゴリの製品が必要な場合は、uhhu_virtuemart_products_en_gb を itselt に対して結合して、2 つのカテゴリ列を作成できます。簡単な例を次に示します。

select p1.product_id from
product_category p1
inner join product_category p2 using(product_id)
where p1.category_id=307
and p2.category_id=383

このような問題に対処する 1 つの方法は、「結果をフィルタリングするために、結果の行に何が表示されなければならないか」を自問することです。

これが唯一の方法ではありませんが、視覚化するのはかなり簡単だと思います。

于 2015-01-05T09:13:01.570 に答える