表tb1id   name
1     小强
2     大强
表tb2
id   class  score
1     数学   90
1     语文   75
2     数学   86
2     语文   80mysql连表查询tb1和tb2  结果如下:
id  name class1  score1 class2 score2
1   小强  数学   90      语文    75
2   大强  数学   86      语文    80语句怎样写?

解决方案 »

  1.   

    select * from tb1 a left join tb2 b on a.id=b.id and b.class='数学'
    left join tb2 c on a.id=c.id and c.class='语文'
      

  2.   

    select id,name,
    '数学' as class1,
    sum(if(class='数学',score,0)) as score1,
    '语文' as class1,
    sum(if(class='语文',score,0)) as score2
    from tb1 inner join tb2 using(id)
    group by id
      

  3.   

    select id,name,
        '数学' as class1,
        sum(if(class='数学',score,0)) as score1,
        '语文' as class1,
        sum(if(class='语文',score,0)) as score2
    from tb1 inner join tb2 using(id)
    group by id
      

  4.   


    想问高手 ,if(class='数学',score,0) 这句什么意思啊