如何在这个示例mysql中返回productid?

时间:2017-12-16 14:53:36

标签: mysql

如何返回那些filterid等于x和y的productid。

execute query是选择并返回表

查询:

rm -rf ~/.local/share/heroku/client

处理结果:

SELECT p.product_id,pf.filter_id
FROM  oc_product p 
LEFT JOIN oc_product_filter pf 
on p.product_id=pf.product_id
where p.product_id in(96621,97026) and pf.filter_id in (1901,1855 )
group by p.product_id,pf.filter_id

但我希望得到product_id filter_id 96621 1855 96621 1901 97026 1901 product_id

想要展示filter_id=1855 and filter_id=1901only product_id=96621

主要查询:

not return product_id=97026

尝试并测试:

1 @ GordThompson:

this result

2. @ Edward Mendez

this result

3 个答案:

答案 0 :(得分:0)

使用OR而不是AND子句。

WHERE_id in()OR filter_id in()OR product_id in in()

答案 1 :(得分:0)

从97026的IN子句中删除product_id。同时删除该组,因为没有聚合功能。

SET @product_id = xxx
SET @filter_id = xxx

SELECT p.product_id,pf.filter_id
FROM  oc_product p 
LEFT JOIN oc_product_filter pf 
on p.product_id=pf.product_id
where p.product_id in(@product_id) and pf.filter_id in (filter_id)
#group by p.product_id,pf.filter_id

答案 2 :(得分:0)

如果你想要一个包含filter_id = 1901和filter_id = 1855的product_id值列表,你可以使用

npm install github:yourname/angular2-grid.git

或者,如果表可能有给定product_id的特定filter_id的多个实例,则可以使用

SELECT product_id
FROM oc_product_filter
WHERE filter_id IN (1901,1855)
GROUP BY product_id
HAVING COUNT(*) = 2