【发布时间】:2013-06-14 02:48:17
【问题描述】:
我有两张桌子:
产品
id name
1 Product 1
2 Product 2
3 Product 3
products_sizes
id size_id product_id
1 1 1
2 2 1
3 1 2
4 3 2
5 3 3
所以产品 1 有两种尺寸:1、2。产品 2 有两种尺寸:1、3。产品 3 有一种尺寸:3。
我想要做的是构建一个查询,以拉回同时具有尺寸 1 和尺寸 3 的产品(即产品 2)。我可以轻松地创建一个查询,该查询将返回具有 both 尺寸 1 和 3 的产品:
select `products`.id, `products_sizes`.`size_id`
from `products` inner join `products_sizes` on `products`.`id` = `products_sizes`.`product_id`
where products_sizes.size_id IN (1, 3)
group by products.id
当我运行此查询时,我会返回产品 1、产品 2 和产品 3。
重申一下,我只想取回产品 2。我尝试使用 HAVING 子句,弄乱了 $id IN GROUP_CONCAT(...) 但我无法得到任何东西工作。提前谢谢各位。
【问题讨论】:
-
你的输出应该是什么样的。