我有一個電子商務網站(MySql/PHP),我需要在兩個連接的表中獲得一些結果。以下是我擁有的簡化版本:MySql JOIN表結果從一對多關係
Table: product[
product_id,
other_irrelevant_stuff,
etc.
]
Table: product_to_category[
product_id,
category_id
]
產品可能有多個類別。我正在使用product p LEFT JOIN product_to_category p2c ON (p2c.product_id = p.product_id)
。我需要獲得分配有兩個特定類別的產品的結果。
很明顯,如果我使用p2c.category_id = 1 AND p2c.category_id = 2
,我得不到任何結果,因爲沒有符合這些條件的單個訂單項。如果我使用p2c.category_id = 1 OR p2c.category_id = 2
,我會從兩個類別(category_id = 1
和全部category_id = 2
)中獲得我不想要的所有結果。我只想得到有category_id 1
和category_id 2
的產品。
我通常對此很好,但也許我只是有一個大腦放屁。那裏有任何想法?
'product_id IN(SELECT product_id FROM product_to_category WHERE p2c.category_id = 1)AND p2c.category_id = 2' –
感謝David,這完全符合我的需要。 –