首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按两列分组/按顺序排序-获取数据而不丢失行

按两列分组/按顺序排序-获取数据而不丢失行
EN

Stack Overflow用户
提问于 2012-10-19 05:37:28
回答 2查看 1.9K关注 0票数 0

我有一个表number_color_style,其结构如下所示。

此表包含如下所示的数据(8行)

在输出时,我想要的是按number_color_idnumber_style_id分组的所有记录。

我试过以下查询

代码语言:javascript
复制
SELECT *
FROM `number_color_style`
GROUP BY `number_color_id` , `number_style_id`

它给了我输出,但是缺少了一些行。

我想要的是四组数据,而不缺少一行(应该包含所有8行)。例:

  • 第一套number_color_id = 1number_style_id = 1
  • 第二套number_color_id = 1number_style_id = 2
  • 第三套number_color_id = 2number_style_id = 1
  • 第4集number_color_id = 2number_style_id = 2

我该怎么做呢?

创建表查询

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `number_color_style` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `img` varchar(100) NOT NULL,
  `number_color_id` int(11) NOT NULL,
  `number_style_id` int(11) NOT NULL,
  `number_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
);

一些样本数据

代码语言:javascript
复制
INSERT INTO `jink`.`number_color_style` (`id`, `img`, `number_color_id`, `number_style_id`, `number_id`) VALUES (NULL, 'img1.png', '1', '1', '10'), (NULL, 'img2.png', '1', '1', '10'), (NULL, 'img3.png', '1', '2', '10'), (NULL, 'img4.png', '2', '1', '10'), (NULL, 'img5.png', '2', '1', '10');
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-19 05:41:06

如果您想按照number_color_id和number_style_id显示所有8组,应该使用order而不是group。

代码语言:javascript
复制
SELECT *
FROM `number_color_style`
ORDER BY `number_color_id` , `number_style_id`
票数 3
EN

Stack Overflow用户

发布于 2012-10-19 05:41:54

当使用“group by”(如count (*) )时,需要一个聚合函数。这可能是因为你混淆了“按组”和“按顺序”。

一个可能的查询是:

代码语言:javascript
复制
select number_color_id, number_style_id, count (*)
from number_color_style
group by number_color_id, number_style_id

但我觉得你想

代码语言:javascript
复制
select *
from number_color_style
order by number_color_id, number_style_id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12967982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档