如何选择从MySQL中选择哪个分组?

时间:2013-08-07 07:53:10

标签: mysql sql group-by

我正在尝试按列进行选择和分组,但保留所有行的其他列。我收到错误消息#1242 - 子查询返回超过1行

我的表

This is my table

我想要的结果

enter image description here

贝娄是我的疑问:

SELECT name FROM table WHERE (SELECT pro_id FROM table GROUP BY pro_id)

2 个答案:

答案 0 :(得分:2)

尝试此查询:

SELECT Pro_id
     , GROUP_CONCAT(Name SEPARATOR ', ') AS Name
  FROM MyTable 
 GROUP BY Pro_ID;

结果:

| PRO_ID |         NAME |
-------------------------
|      1 | john, sandra |
|      2 |          jeo |
|      3 | bruno, piter |

请参阅this SQLFiddle

答案 1 :(得分:0)

您不能像在示例中那样在SQL结果集中“合并单元格”。您可以做的最好的事情是使用GROUP_CONCAT函数在一个“单元格”中“连接”多个值,或者使用ORDER BY子句对行进行排序以将公共值组合在一起。

考虑到这一点,您需要一个非常基本的SELECT ... ORDER BY语句:

SELECT name, pro_id FROM table ORDER BY pro_id

产:

+---------+--------+
|  NAME   | PRO_ID |
+---------+--------+
| john    |      1 |
| sandra  |      1 |
| jeo     |      2 |
| bruno   |      3 |
| piter   |      3 |
+---------+--------+

请参阅http://sqlfiddle.com/#!2/6ea716/2