将整个表格加入单行

时间:2015-09-23 17:17:22

标签: mysql join

假设我有2个这样的表:

--------+-------          
| id    | name |
--------+-------
| 1     | Paul |
| 2     | Jack |
| 3     | Joe  |
--------+-------


--------+--------
| id    | Color |
--------+--------
| 1     | Blue  |
| 2     | Red   |
| 3     | Pink  |
--------+--------

我想得到这样的结果:

--------+-----------------
| Paul  | Blue,Red,Pink  |
--------+-----------------

我不知道它是否依赖于我可能错过的复杂查询或“简单”关键字。我在JOIN附近搜索了这样的事情:

SELECT * FROM main WHERE name = Paul CROSS JOIN colors WHERE 1;

但这似乎并不容易,而且它当然不起作用。

我们非常感谢您搜索的任何提示或关键字

2 个答案:

答案 0 :(得分:0)

我认为GROUP_CONCAT()功能是您正在寻找的功能。尝试这样的事情:

SELECT table_names.name, GROUP_CONCAT(table_colors.color) AS color 
FROM table_names 
LEFT JOIN table_colors ON table_names.id = table_colors.id

答案 1 :(得分:0)

使用Cross Joingroup_concat

<强>查询

select t1.name,group_concat(distinct t2.color separator ',') as color
from tbl1 t1,tbl2 t2
where t1.name = 'Paul'
group by t1.name;

SQL Fiddle