[英]Grouping items with group by having
我有以下数据库:
id product color group
1 chair blue 1
2 chair yellow 1
3 chair brown 1
4 table pink 2
5 table red 2
6 carpet cyan -1
7 sofa white 3
8 sofa green 3
9 curtains black -1
我想从每个组中获得一个产品ID,再加上不属于任何组的所有产品,即group = -1:
id product
1 chair
4 table
6 carpet
7 sofa
9 curtains
我尝试了以下查询:
SELECT `id` FROM `products` GROUP BY `group` HAVING `group` != '-1'
但是它不返回非集团产品...
帮忙,有人吗?
谢谢佩德罗
您可以在此处使用联合方法:
SELECT MIN(id) AS id, product
FROM products
WHERE `group` <> -1
GROUP BY product
UNION ALL
SELECT id, product
FROM products
WHERE `group` = -1;
联合查询的上半部分每个组报告一个产品,其id
最小。 下半部分报告所有具有group = -1
,没有任何聚合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.