gpt4 book ai didi

php - mysql : Products which satisfies category conditions

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

我只想要那些满足以下条件的产品:

其中有 ((category_id = 1 ORcategory_id = 2) AND (category_id = 3 ORcategory_id = 4))

数据库结构:

产品

id  int(10)     
name varchar(128)

类别

Id  int (10)
name varchar(64)

category_products

product_id  int(10)
category_id int(10)

数据:

我的产品详细信息是:

Products:
id name
1 P1
2 P2
3 P3
4 P4

我的类别详细信息是:

Categories:
Id name
1 C1
2 C2
3 C3
4 C4

我的类别-产品映射详细信息是:

category_products:
product_id category_id
1 1
1 3
1 4
2 2
3 1
3 2
3 3
3 4
4 1
4 4



Final Output should be:
id
1
3
4

最佳答案

SELECT DISTINCT p.id, p.name FROM products AS p
INNER JOIN category_products AS c1 ON c1.product_id=p.id
INNER JOIN category_products AS c2 ON c2.product_id=p.id
WHERE c1.category_id IN (1,2) AND c2.category_id IN (3,4)

无法使用

WHERE c.category_id IN (1,2) AND c.category_id IN (3,4)

因为 WHERE 子句一次仅测试一行,并且一个 Category_id 不可能在一行上有两个值。因此,自连接通过匹配多行并通过相关名称引用它们来处理这一问题。

关于php - mysql : Products which satisfies category conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17916887/

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