我有以下mysql表:
products
带有文件:
id, product_group_id, internal_product_id, version, platform_id, name
1 12 12 1 30 Megacalculator
2 12 12 2 30 Megacalculator
3 16 17 1 30 Calculator
4 16 17 2 30 Calculator
5 16 18 0.1 40 Calculator Linux
6 20 19 2.1 30 Converter Windows
7 20 20 2.1 40 Converter Linux
8 30 24 0.1 30 Editor
我需要检索此表中按' product_group_id'分组的所有行。但是有一个不同的' internal_product_id'在集团内部。此外,每个组中的行数必须等于某个特殊数字(该值必须作为外部参数提供给查询)
例如:
外部参数= 2,结果:
product_group_id
16
20
外部参数= 1,结果:
product_group_id
12
30
请帮我解决这个SQL查询。
答案 0 :(得分:1)
试试:
for parameter = 2
select `product_group_id` from products
group by `product_group_id`
having count(distinct `internal_product_id`) = 2
for parameter = 1
select `product_group_id` from products
group by `product_group_id`
having count(distinct `internal_product_id`) = 1
答案 1 :(得分:0)
你可以这样做:
select product_group_id from products
group by product_group_id;
having count(internal_product_id) = 2;
或者您可以在表格中获取信息:
select product_group_id, count(internal_product_id) from products
group by product_group_id;