2017-04-07 23 views
0

我有这个DB:(id是唯一mysql如何组成排的分组

enter image description here

我试图让这个:

enter image description here

什么将是一个高效的SQL查询来实现这一目标?

+5

你不是真的想在SQL中做这种类型的操作。在应用层做得好得多。可能的,但真的不值得。 –

+3

最好在应用程序端执行此操作(Java/php/...)使用'group_id'的简单命令,然后遍历结果集。如果'group_id'更改,则应用标题。 – gaborsch

回答

2
SELECT 
    DISTINCT 
    foo2.group_id AS group_id, 
    if(foo1.group_id = foo2.group_id, foo1.id, NULL) AS id, 
    if(foo1.group_id = foo2.group_id, foo1.some_attr, NULL) AS some_attr 
FROM mytable AS foo1 
    JOIN 
    (SELECT DISTINCT group_id FROM mytable) as foo2   
    ORDER BY group_id, id 
1

您似乎正在将结果集与格式化结果集混合在一起。 SQL结果集是一致行的表。您可以最接近的是在SELECT语句中更改列名的顺序。演示时您必须添加自己的换行符。