繁体   English   中英

通过将项目分组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM