2012-06-11 144 views

回答

1

使用子查询:

SELECT * 
FROM tbl_product 
WHERE id IN (
    SELECT product_id 
    FROM tbl_product_filter 
    WHERE product_filter_value IN (1, 2) 
) 

使用连接(此查询可能会显示一个产品多次):

SELECT tbl_product.* 
FROM tbl_product 
INNER JOIN tbl_product_filter ON tbl_product.id = tbl_product_filter.product_id 
WHERE product_filter_value IN (1, 2) 
+0

谢谢您的回答,但这些疑问将是困难的。还有其他解决方案吗? –

+0

硬?你在开玩笑我:)你真的需要得到连接和子查询的窍门。 –

+0

想象一下,你有一张有500,000行的表格。请参阅'EXPLAIN'和执行时间。 –

0
SELECT tbl_product.* 
FROM tbl_product_filter 
INNER JOIN tbl_product USING (product_id) 
WHERE product_filter_value IN (1, 2) 
GROUP BY tbl_product_filter.product_id 
相关问题