gpt4 book ai didi

mysql - SQL Group_concat 未获取所有数据

转载 作者:可可西里 更新时间:2023-11-01 08:09:25 25 4
gpt4 key购买 nike

我有2张表和第二张表的使用关系

table1
id name
---------
1 alpha
2 beta

table2
id name relation
-------------------
1 2015 2
2 2016 2
3 2017 2
4 2018 2

我想看看

name   data
-------------------------
beta 2015,2016,2017,2018
alpha NULL

我尝试了以下 sql 查询,但输出不是我想要的

我使用:

SELECT 
t1.name,
GROUP_CONCAT(t2.name SEPARATOR ',')
FROM table1 AS t1
LEFT JOIN table2 AS t2
ON t2.relation = t1.id

输出:

alpha 2015,2016,2017,2018

Alpha 在其他相关指法表中没有任何值(value)。输出中的值属于 beta。

最佳答案

你需要GROUP BY:

SELECT t1.name,
GROUP_CONCAT(t2.name SEPARATOR ',')
FROM table1 t1 LEFT JOIN
table2 t2
ON t2.relation = t1.id
GROUP BY t1.name;

在大多数数据库(以及最新版本的 MySQL)中,您的查询会失败。它是一个聚合查询(因为 GROUP_CONCAT())。但是,t1.name 不是聚合函数的参数,也不是 GROUP BY 键。

MySQL 允许这种类型的查询。它只返回一行。结果集中一行的t1.name的值来自任意一行。

关于mysql - SQL Group_concat 未获取所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47572594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com