如果条件在多行中匹配,则从映射表中获取数据

时间:2014-05-30 08:09:17

标签: php mysql

product_id   property_id

1            2
1            5
2            2
3            5

我有一张如上所示的映射表。如果id =1,我只想获得product_id in (2,5)的产品。即如果表格包含2,5而不是数据,如果仅包含property_id 2 or 5

,我想要获取数据
select group_concat(distinct product_id) product_ids from table where property_id in (2,5)

更新: property_id in可以是(2,5,....)中的property_id。我从表格输出2,5,....等等。它不仅适用于单一案例。如果property_id中的条件与整个系列匹配,我只想要输出。

2 个答案:

答案 0 :(得分:1)

这是怎么做的

select
product_id from
table_name 
where property_id in (2,5)
group by product_id 
having count(*) = 2 

您需要将having count(*) = 2更改为IN()内的项目数,现在是2,如果您正在查看3属性ID,那么它将是3,依此类推。

答案 1 :(得分:0)

select distinct a.product_id 
from table a, table b
where a.product_id = b.product_id
and a.property_id = 2
and b.property_id = 5