表1如下:id,quality
1   dvd
2   avi
3   rmvb
4   dvd
5   avi表2 如下:
userid , sub_quality
1          dvd
1          avi要的结果。更具userid =1 
quality   is_subdvd       true
avi       true
rmvb      false就是要让表a中quality不同的全部列出来。在更具表2中的内容来判断是true or false

解决方案 »

  1.   

    create table 表1(id int,quality varchar(10))
    insert 表1
    select 1,   'dvd' union
    select 2,   'avi'  union
    select 3,   'rmvb'   union
    select 4,   'dvd'  union
    select 5,   'avi'create table 表2(userid int, sub_quality varchar(10))
    insert 表2
    select 1,          'dvd' union
    select 1,          'avi'
    select a.quality,is_sub=(case userid when 1 then 'true' else 'false' end) from (select distinct quality from 表1)a left join 表2 b on a.quality
    =b.sub_quality
    drop table 表1,表2
      

  2.   

    quality    is_sub 
    ---------- ------ 
    avi        true
    dvd        true
    rmvb       false
      

  3.   

    SELECT A.quality,MAX(case when isnull(B.userid,0)=0 then "false" else "true " end) as is_sub FROM 表1 A LEFT JOIN 表2 B ON A.quality=B.sub_quality AND B.userid1=1 GROUP BY A.quality