2017-01-30 36 views
3

是否可以水平顯示屬性。MySQL。屬性的水平顯示

例如,我有這樣的表:

enter image description here

而且簡單

SELECT user.name, project.name 
FROM user 
    LEFT JOIN project ON user.project_id = project.id; 

給我

User #1,Project #1 
User #2,Project #1 
User #3,Project #2 

是否有可能得到這樣的結果?在一個專欄名稱中以及所有相關用戶。

Project #1 
User #1 
User #2 
Project #2 
User #3 
+0

修復它在表示層。 – jarlh

+0

@jarlh我明白,但這幾乎是不可能的。我正在處理遺留代碼。這樣的解決方法可能嗎? –

回答

1

我認爲你可以使用UNION查詢與一對夫婦內嵌列一起訂購的輸出產生所需的輸出。

SELECT t.name 
FROM 
(
    SELECT DISTINCT project.name AS name, 
        project.id AS id, 
        0 AS idx 
    FROM user 
    LEFT JOIN project 
     ON user.project_id = project.id 
    UNION ALL 
    SELECT user.name, 
      project.id, 
      1 
    FROM user 
    LEFT JOIN project 
     ON user.project_id = project.id 
) t 
ORDER BY t.id, 
     t.idx, 
     t.name 
+0

它給了我2次「Project#1」。 –

+1

@ D.R。我在'UNION'子查詢的前半部分使用了'SELECT DISTINCT',它現在似乎正在工作。 –