我的数据库中一个学生表 stu 一个选课表 c_select
stu 中有学生的信息
c_select 中有每个选课记录以及该记录对应的学生的该课程的成绩SELECT
stu.stu_ID,
stu.stu_name,
c_select.
FROM
stu
Right Outer Join c_select ON stu.stu_ID = c_select.stu_ID结果出来 是一个学生有多条记录
但是我想实现,一个学生只有一行,他选了N 门课,后面就添上 N 个成绩就好了,怎么实现?

解决方案 »

  1.   


    SELECT stu.stu_ID,stu.stu_name,
    group_concat(c_select.)
    FROM stu Right Outer Join c_select ON stu.stu_ID = c_select.stu_ID
    group by stu.stu_ID,stu.stu_name
      

  2.   

    一般用静态、动态方法来解决,如果只是要一行显示,用group_concat即可
    SELECT stu.stu_ID,stu.stu_name,
        group_concat(c_select.)
    FROM stu Right Outer Join c_select ON stu.stu_ID = c_select.stu_ID
    group by stu.stu_ID,stu.stu_name
      

  3.   

    解决了,使用的 group_concat,但是之前我的 是用的tinyint ,所以返回了 blob,改为 varchar,就OK了,谢谢大家