gpt4 book ai didi

php - Mysql 查询需要一对多关系来进行匹配搜索

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

第一个表

属性

id   Name

1 ABC
2 XYZ
3 GHQ

属性选项

 id   property_id  option

1 1 terrace
2 1 balcony
3 1 garaj
1 2 terrace
2 2 balcony
3 2 garaj

我想使用三个选项(露台阳台garaj)过滤特性

如果用户选中三个选项,那么只有那些具有三个选项而不是两个或一个选项的属性才会出现。

最佳答案

我会使用聚合和group by来做到这一点:

select p.propertyid
from property p
group by p.propertyid
having sum(property_option = 'terrace') > 0 and
sum(property_option = 'balcony') > 0 and
sum(property_option = 'garaj') > 0;

每个条件都会计算该属性出现的次数。这是一种灵活的方法。如果您想要前两个,而不是“garaj”,您可以使用:

having sum(property_option = 'terrace') > 0 and
sum(property_option = 'balcony') > 0 and
sum(property_option = 'garaj') = 0;

关于php - Mysql 查询需要一对多关系来进行匹配搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26629413/

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