Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果a表在select中返回多行,如何组合数据?_Mysql_Sql - Fatal编程技术网

Mysql 如果a表在select中返回多行,如何组合数据?

Mysql 如果a表在select中返回多行,如何组合数据?,mysql,sql,Mysql,Sql,假设我有一个sql数据库和如下查询: 正如你所看到的,我有一些用户有一些最喜欢的颜色。我想能够做的是运行一个查询,并选择所有的用户和他们最喜欢的颜色。。。然而,为了便于在我自己的代码中使用,我希望每行上不存在重复的数据 我希望最终结果是: 1 | Email | admin@sqlfiddle.com | [Blue, Green] 2 | Twitter | @sqlfiddle | [Purple] 这样返回的是一个用户表,其中每一行都是一个用户,我可以得到

假设我有一个sql数据库和如下查询:

正如你所看到的,我有一些用户有一些最喜欢的颜色。我想能够做的是运行一个查询,并选择所有的用户和他们最喜欢的颜色。。。然而,为了便于在我自己的代码中使用,我希望每行上不存在重复的数据

我希望最终结果是:

1   |  Email  | admin@sqlfiddle.com | [Blue, Green]
2   | Twitter | @sqlfiddle          | [Purple]
这样返回的是一个用户表,其中每一行都是一个用户,我可以得到他们最喜欢的颜色

如果有不同的思考方式(不是合并,而是在一行上列出用户和他们喜欢的颜色),我也很乐意听到


谢谢

SQL FIDLE是MySQL,所以我假设它是数据库。在MySQL中,您可以使用
group\u concat()
将它们放在一起:

如果您确实希望它们采用带方括号的格式:

       concat('[', group_concat(fc.color separator ', '), ']')
是SQL的把戏

其他数据库通常都有类似的功能。

您可以使用它来完成您想要的功能

select 
  supportContacts.id, 
  supportContacts.type, 
  supportContacts.details, 
  GROUP_CONCAT(favoriteColors.color)
from supportContacts 
left join favoriteColors on supportContacts.id = favoriteColors.support_id
group by supportContacts.id

你在使用什么数据库?SQL FIDLE是MySQL,所以我倾向于认为这是合适的数据库。哦,对不起,忘了添加它了。MySQL确实是数据库。
select 
  supportContacts.id, 
  supportContacts.type, 
  supportContacts.details, 
  GROUP_CONCAT(favoriteColors.color)
from supportContacts 
left join favoriteColors on supportContacts.id = favoriteColors.support_id
group by supportContacts.id