gpt4 book ai didi

MYSQL:产品-属性关系

转载 作者:行者123 更新时间:2023-11-29 18:29:29 25 4
gpt4 key购买 nike

我正在尝试找出产品和产品属性之间的关系。我有一个 product 表和一个 product_attributes 表。产品可以具有多种属性。我需要查询来查找具有一个特定属性和另一个属性之一的所有产品。例如。 attribute_value_id 为“1”的产品,并且该产品的 attribute_value_id 还必须为 IN (2, 3, 4)

我以为这样可以做到这一点,但事实并非如此:

SELECT DISTINCT p.product_id 
FROM `product` p
JOIN `product_attribute` pa ON (p.product_id = pa.product_id)
WHERE pa.attribute_value_id = 1 AND pa.attribute_value_id IN(2, 3, 4)

产品

产品 ID

产品属性

产品 ID |属性 ID |属性值 ID

attribute_id 是属性组(例如颜色、性别)attribute_value_id是具体值(例如蓝色、男性、女性)

换句话说,我需要所有蓝色或红色的男士产品。

有什么建议吗?先感谢您。任何帮助表示赞赏。

最佳答案

可能有点晚了,但我想迟到总比不到好:p

子查询选择条件1条件2匹配的记录。如果产品符合这两个条件,结果中将出现 2 行。

外部查询对结果执行count()并检查count = 2,输出不同的product 其中 2 个条件匹配。

-- outer query
SELECT
a.product_id, count(a.attribute_value_id) as attribute_count
FROM

-- subquery
(
SELECT p.*, pa.attribute_value_id
FROM
product p
JOIN product_attribute pa
ON (p.product_id = pa.product_id)
WHERE
-- condition 1
pa.attribute_value_id = 1
-- condition 2
OR pa.attribute_value_id IN(2, 3, 4)
) a

GROUP BY a.product_id
HAVING attribute_count = 2;

关于MYSQL:产品-属性关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45833252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com