Mysql连接三个表到单个表

时间:2014-10-23 08:40:59

标签: mysql sql

我有三张桌子。 家长学生 student_parent '


    的p_id
    p_name

学生
S_ID
s_name

student_parent
S_ID
P_ID

我想以下列格式为报告功能形成一个新表。

s_id | s_name | p_name_1 | p_name_2

由于为一个学生(如母亲和父亲)创建了两个记录,我希望将这两个记录同时带到一个s_id的单个表中。目前我有一个这样的表,

p_id |   s_id | s_name | p_name
 01  |    01  |   sam  |   jack
 02  |    01  |   sam  |   jill  

我希望表格符合以下结构。

s_id | s_name | p_name_1 | p_name_2
 01  |   sam  |   jack   |    jill  

我搜索过但找不到合适的解决方案。

这是我的curremt sql语句:

SELECT s.student_id, s.first_name, s.last_name, c.first_name
FROM fsms_student s, fsms_student_parent_guardian b, fsms_parent_guardian c
WHERE b.student_id = s.student_id AND b.parent_guardian_id = c.parent_guardian_id  

如果有人能为我提供解决方案,我将非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

为什么,你已经有了解决方案:

CREATE TABLE newTable
SELECT 
    s.student_id as s_id, 
    concat(s.first_name, " ",s.last_name) as s_name, 
    count(distinct b.parent_guardian_id) as parentCount, 
    GROUP_CONCAT(p_name)
FROM 
    fsms_student s, fsms_student_parent_guardian b, fsms_parent_guardian c
WHERE 
    s.student_id = b.student_id  
    AND b.parent_guardian_id = c.parent_guardian_id 
GROUP BY 1,2