honor表:
功勋id         功勋名称
honor_id   name
1                   n1
2                   n2
3                   n3
4                   n4
5                   n5
6                   n6u_honor表:
用户id      功勋         获得数量
userid   honor_id  count
666             4             3
555             2             2
........
........
查询结果要:当查询条件userd = 666时:
honor_id   count
1                    0          
2                    0
3                    0
4                    3
5                    0
6                    0当查询条件userd = 555时:
honor_id   count
1                    0          
2                    2
3                    0
4                    0
5                    0
6                    0当查询userid不在u_honor中时:
honor_id   count
1                    0          
2                    0
3                    0
4                    0
5                    0
6                    0

解决方案 »

  1.   

    honor表:
    功勋id         功勋名称
    honor_id   name
    1                   n1
    2                   n2
    3                   n3
    4                   n4
    5                   n5
    6                   n6u_honor表:
    用户id      功勋         获得数量
    userid   honor_id  count
    666             4             3
    555             2             2
    ........
    ........
    查询结果要:当查询条件userd = 666时:
    honor_id   count
    1                    0          
    2                    0
    3                    0
    4                    3
    5                    0
    6                    0当查询条件userd = 555时:
    honor_id   count
    1                    0          
    2                    2
    3                    0
    4                    0
    5                    0
    6                    0当查询userid不在u_honor中时:
    honor_id   count
    1                    0          
    2                    0
    3                    0
    4                    0
    5                    0
    6                    0
      

  2.   


    select 
    honor_id, 
    IFNULL((select [count] from u_honor  where honor_id = honor.honor_id and userid = '666'),0) as c
    from honor