2011-10-24 84 views
2

我有顯示在一個領域的多個記錄值的SQL LIKE:SQL:從子查詢

SELECT S.*, 
    (SELECT I.NAME FROM institution I, inst_map IM 
      WHERE IM.STUDENT = S.ID AND IM.INSTITUTION = I.ID) as INSTITUTIONS 
FROM student S 

在這種情況下,可以爲我的子查詢返回多個記錄(我會得到一個錯誤:Subquery returns more than 1 row) 。

如何在一個字段中顯示我的子查詢中的多個值(在我的案例中爲INSTITUTIONS),並用逗號分隔?

歡迎任何想法。

回答

4

嘗試此查詢 -

SELECT s.*, GROUP_CONCAT(t.NAME) INSTITUTIONS FROM student s 
    LEFT JOIN (SELECT * FROM institution i 
       JOIN inst_map im 
       ON im.INSTITUTION = i.ID 
      ) t 
    ON s.ID = t.STUDENT 
GROUP BY s.ID 

GROUP_CONCAT功能將幫助您獲得用逗號分隔值。