Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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如何分组到行的子组中_Mysql_Sql_Group By - Fatal编程技术网

MySQL如何分组到行的子组中

MySQL如何分组到行的子组中,mysql,sql,group-by,Mysql,Sql,Group By,我有这个数据库:(注意id是唯一的) 我正在努力做到这一点: 要实现这一点,什么是高效的SQL查询?您似乎将结果集与结果集的格式混合在一起。SQL结果集是具有一致行的表。最接近的方法是在SELECT语句中更改列名的顺序。您必须在演示时添加自己的换行符。您似乎将结果集与结果集的格式混合在一起。SQL结果集是具有一致行的表。最接近的方法是在SELECT语句中更改列名的顺序。在演示时,您必须添加自己的换行符。您真的不想在SQL中执行这种类型的操作。最好是在应用层进行。可能,但确实不值得。最好在应用

我有这个数据库:(注意
id
是唯一的)

我正在努力做到这一点:


要实现这一点,什么是高效的SQL查询?

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

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

您真的不想在SQL中执行这种类型的操作。最好是在应用层进行。可能,但确实不值得。最好在应用程序端(Java/php/…)使用一个简单的order by for
group\u id
,然后遍历结果集。如果
group\u id
发生更改,请应用标题。您实际上不想在SQL中执行这种类型的操作。最好是在应用层进行。可能,但确实不值得。最好在应用程序端(Java/php/…)使用一个简单的order by for
group\u id
,然后遍历结果集。如果
组id
更改,请应用标题。
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