select a.guid,a.classname,isnull(b.allowinsert,0) as allowinsert from t_menu1 a
left join t_popedom1 b on a.guid=b.classid 
where b.userid='liujz'

解决方案 »

  1.   

    老兄,执行结果不行啊注:t_menu1中的guid 也就是等于t_popedom1中的 classid相同
      

  2.   

    select a.guid,a.classname,b.allowinsert from t_menu1 a,t_popedom1 b where a.guid=b.classid and b.userid='liujz'
    Union All
    Select guid,classname, '0' as allowinsert from t_menu1 Where guid Not In (Select classid from t_popedom1 Where userid='liujz' )
    Order by guid,classname
      

  3.   

    一楼的语句只能得到
    guid   classname allowinsert
    10001 菜单b 1
    10004 菜单e 1
      

  4.   

    老兄,执行结果不行啊注:t_menu1中的guid 也就是等于t_popedom1中的 classid相同
      

  5.   

    paoluo(一天到晚游泳的鱼):谢谢,你的是行的,刚刚是指一楼的。除了union还有其他的方法吗?
      

  6.   

    paoluo(一天到晚游泳的鱼)  的完全正确
      

  7.   

    To xyzabc(只有更好) ( ) 没想到更好的办法。要不你等等高手吧。
      

  8.   

    select a.guid,a.classname,allowinsert=
    case 
    when b.allowinsert=1 then 1 
    when b.allowinsert is null then 0 
    end
    from t_menu1 a left join t_popedom1 b on a.guid=b.classid and b.userid='liujz'
      

  9.   

    结果guid        classname                                          allowinsert 
    ----------- -------------------------------------------------- ----------- 
    10000       菜单a                                                0
    10001       菜单b                                                1
    10002       菜单c                                                0
    10003       菜单d                                                0
    10004       菜单e                                                1
    10005       菜单f                                                0
      

  10.   

    楼上的语句还可以简化
    select a.guid,a.classname,allowinsert=IsNull(b.allowinsert,0)
    from t_menu1 a left join t_popedom1 b on a.guid=b.classid and b.userid='liujz'
      

  11.   

    谢谢paoluo and heyixiang 这个方法是很好,另外我同事采用创建临时表的方式,也能得到结果。请问这三种方法有什么区别?create table #allowinsert(
    guid int  NULL ,
    classname varchar (50) NULL ,
            allowinsert int null)insert into #allowinsert select *,0  from t_menu1update #allowinsert set allowinsert = 1 from #allowinsert a,t_popedom1 b where a.guid = b.classid and b.userid = 'liujz'select * from  #allowinsert
      

  12.   

    我觉得最好这种最好,效率最高。select a.guid,a.classname,allowinsert=IsNull(b.allowinsert,0)
    from t_menu1 a left join t_popedom1 b on a.guid=b.classid and b.userid='liujz'