我想选择与产品代码相关的所有常用属性 例如:
Table: product
id - code
1 - C1
2 - C1
3 - C1
Table: attribute
id - product_id - name - value
1 - 1 - W - 10
2 - 1 - H - 12
3 - 2 - W - 10
4 - 2 - H - 2
5 - 2 - T - 12
6 - 3 - W - 10
...
如何获得与产品代码
对应的属性行例如:产品代码C1。产品代码C1的公共属性(名称,值)是 名称= W且值= 10 ,因为它们具有相同的名称和值
如果属性表中没有产品ID 3,它也应该返回null。
答案 0 :(得分:1)
SELECT product.code,
attribute.name,
attribute.value
FROM product
JOIN attribute ON product.id = attribute.product_id
GROUP BY product.code,
attribute.name,
attribute.value
HAVING count(*) = (SELECT count(*)
FROM product AS p2
WHERE p2.code = product.code)