2017-04-07 37 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語句中更改列名的順序。演示時您必須添加自己的換行符。