建议通过存储过程或者php程序循环本身来实现。

解决方案 »

  1.   

    每个记录都是一一对应的关系?
    数学一定是60?
    建议通过php循环来做
    因为你这两个表联系不大啊
      

  2.   

    数学,语文等,都是记录里的内容,怎么能放到头上作为字段的名呢?
    觉得不可能直接用sql达到这样的效果。比如:表是这样
    1  数学  60
    1  语文  80
    1  英语  90谁有办法显示成这样?
     id   数学  语文  英语
      1    60    80    90
      

  3.   

    GROUP_CONCAT([DISTINCT] expr [,expr ...]
                 [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
                 [SEPARATOR str_val])这个函数在 MySQL 4.1 中被加入。函数返回一个字符串结果,该结果由分组中的值连接组合而成: mysql> SELECT student_name,
        ->        GROUP_CONCAT(test_score)
        ->        FROM student 
        ->        GROUP BY student_name;
    or
    mysql> SELECT student_name,
        ->        GROUP_CONCAT(DISTINCT test_score
        ->                     ORDER BY test_score DESC SEPARATOR " ")
        ->        FROM student
        ->        GROUP BY student_name;可以试试(在mysql手册中关于group by 中的函数部分),不过离你的要求还有点差距:)
      

  4.   

    select 
      学号,
      sum(case 科目号 when '数学' then 成绩 else 0 end) 数字,
      sum(case 科目号 when '语文' then 成绩 else 0 end) 语文,
      sum(case 科目号 when '英语' then 成绩 else 0 end) 英语
    from
     tab
    group by 学号我没环境试,你试试行不行......