好的,所以我的表格包含以下数据
product_id filter_id
51 1
52 2
51 2
52 1
52 4
group_id filter_id filter_name group_name
1 1 white COlour
1 2 black COlour
1 3 grey COlour
2 4 formal Style
2 5 casual Style
如果用户给出了一组过滤器ID,我想过滤产品,例如将filter_id分组,考虑到他们的group_id为ex。
select * from filter where filter_id in (1,2) AND filter_id in (4,5)
当我使用此查询时,我得到空输出
为什么我在这里使用IN两次是因为1,2属于一个filter_group而4,5属于不同的filter_group,可以在表中添加组和过滤器,因此我将根据用户选择使用php生成动态查询。
任何人都可以帮我找到解决这个问题的方法,谢谢你提前
答案 0 :(得分:0)
根据您提供的示例,您需要在这些子查询之间执行尽可能多的子查询,并在这些子查询之间使用inner join
:
SELECT product_id
FROM
( SELECT product_id
FROM filter
WHERE filter_id IN (1,
2)) group1 // Here you select white or black products
INNER JOIN
( SELECT product_id
FROM filter
WHERE filter_id IN (4)) group2 // here products with Formal style
using(product_id) // Here both
答案 1 :(得分:0)
此查询对我有用:
load