根據您實際表,這是可能的一個SQL語句: -
SELECT s.student_name,
SUBSTRING_INDEX(GROUP_CONCAT(t.teacher_name ORDER BY teacher_id), ',', 1) AS teacher_name1,
IF(COUNT(t.teacher_id) >= 2, SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(t.teacher_name ORDER BY teacher_id), ',', 2), ',', -1), NULL) AS teacher_name2,
IF(COUNT(t.teacher_id) >= 3, SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(t.teacher_name ORDER BY teacher_id), ',', 3), ',', -1), NULL) AS teacher_name3,
IF(COUNT(t.teacher_id) >= 4, SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(t.teacher_name ORDER BY teacher_id), ',', 4), ',', -1), NULL) AS teacher_name4,
IF(COUNT(t.teacher_id) >= 5, SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(t.teacher_name ORDER BY teacher_id), ',', 5), ',', -1), NULL) AS teacher_name5
FROM student s
LEFT OUTER JOIN teacher t ON s.subject_enrolled = t.subject_teaches
GROUP BY s.student_id
但是我關心的是你的表的描述。你的學生表有一個student_id作爲主鍵,然後是subject_enrolled的一個字段。這表明您爲每個學生都有多個student_id,或者subject_enrolled是他們註冊的所有主題的分隔字段。
我上面的SQL假設學生ID不是主鍵,因此每個學生/學生ID可以有多行。
你能更新例子嗎?.....你的問題對我們來說並不清楚。 –