MySQL GROUP_CONCAT()将所有行分组

伊万·提莫申(Ivan Timoshin)

我有以下查询:

select card.id as id, photo.image as photo
from card
left outer join card_image as photo on (photo.card=card.id)

哪个返回

+----+-------+
| id | photo |
+----+-------+
|  1 |     2 |
|  1 |     3 |
|  1 |     4 |
|  2 |     5 |
|  2 |     6 |
+----+-------+

如果我更改photo.image as photogroup_concat(photo.image) as photos以下结果

+----+---------------+
| id | photo         |
+----+---------------+
|  1 |     2,3,4,5,6 |
+----+---------------+

但是我的期望是

+----+-----------+
| id | photo     |
+----+-----------+
|  1 |     2,3,4 |
|  2 |     5,6   |
+----+-----------+

即我想通过id为每张卡获取一组照片

约翰·布林格

GROUP_CONCAT()是一个汇总函数,例如MAX()每个组产生一行。组是由GROUP BY子句定义的,并且在没有这样的子句的情况下(如您的情况),所有行都属于同一组。您显然想按以下分组card.id

select
  card.id as id,
  group_concat(photo.image) as photos
from
  card
  left outer join card_image as photo
    on (photo.card = card.id)
group by card.id

还要注意,对于聚合查询,标准SQL允许仅选择分组列和分组功能。在您的原始示例中,没有分组列,因此您完全依靠MySQL扩展进行选择card.id另一方面,我在上面给出的代码在这方面是标准的(但group_concat()仍然是MySQL主义的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL group_concat限制分组中的行

来自分类Dev

MySQL GROUP_CONCAT 具有相同的所有值

来自分类Dev

group_concat不能显示mysql的所有值

来自分类Dev

前n行的MySQL GROUP_CONCAT

来自分类Dev

MySQL group_concat返回所有值,而不是每列的值

来自分类Dev

mysql SELECT多对多GROUP_CONCAT(如何获取所有记录)

来自分类Dev

MySQL使用group_concat将多个关系表选择为一行

来自分类Dev

MySQL group_concat与联接

来自分类Dev

MySQL:嵌套的GROUP_CONCAT

来自分类Dev

MySQL group_concat问题

来自分类Dev

MySQL Group_Concat 不在

来自分类Dev

PHP MySQL将GROUP_CONCAT结果视为单独的项目

来自分类Dev

MySQL GROUP_CONCAT并翻转两行

来自分类Dev

连接行上的mysql GROUP_CONCAT DISTINCT

来自分类Dev

MYSQL GROUP_CONCAT表必须具有自己的别名

来自分类Dev

在subselect中具有GROUP_CONCAT的MySQL

来自分类Dev

MySQL的自我加入与group_concat,没有重复

来自分类Dev

在MySQL中具有多个联接的group_concat

来自分类Dev

mysql JSON_ARRAYAGG或GROUP_CONCAT有限制

来自分类Dev

mysql中的group_concat,带有“ case when”条件

来自分类Dev

MYSQL GROUP_CONCAT表必须具有自己的别名

来自分类Dev

mysql内部连接group_concat mysql

来自分类Dev

MySql SELECT GROUP_CONCAT查询不会在长文本单元格中返回所有数据

来自分类Dev

Mysql with Group by + IF + Left Join + Group_Concat

来自分类Dev

无法让 Ajax 更新按 GROUP CONCAT 分组的 MySQL 行结果。甚至有可能吗?

来自分类Dev

MySQL的Group_Concat函数缺少空值。如何对包含NULL的行进行分组。

来自分类Dev

MySQL多个group_concat命令保存

来自分类Dev

MySQL对多个JOINS使用GROUP_CONCAT

来自分类Dev

MySQL group_concat SEPERATOR char或ascii

Related 相关文章

热门标签

归档