如题。请高手们帮忙解答一下.谢谢。例如:select * 
      from Tbl1 left join Tbl2 on Tbl1.id in (select T2 .id from Tbl2 T2 )

解决方案 »

  1.   

    select * 
          from Tbl1 left join Tbl2 on Tbl1.id where Tbl1.id  in (select T2 .id from Tbl2 T2 )
      

  2.   

    select * 
          from Tbl1 left join Tbl2 on Tbl1.id =TBL2 .id 
      

  3.   

    select * from Tbl1 left join Tbl2 on Tbl1.id=tbl2.id where tbl2.id in(...)
      

  4.   

    select *
          from Tbl1 , Tbl2 
    where  Tbl1.id in (select T2 .id from Tbl2 T2 )select *
          from Tbl1 left join Tbl2 on 1=1
    where Tbl1.id in (select T2 .id from Tbl2 T2 )應該改為這樣吧,樓主的寫法條件沒有影響顯示的記錄
      

  5.   

    我不确定可不可以这样
    但是感觉是不可以的
    两个表没有关联起来
    你可以这样select * from (Select * from Tbl1 Where Tbl1.id in (select T2 .id from Tbl2 T2 )
    )Temp left join Tbl2 on Tbl2.id=Tbl1.id
      

  6.   

    补充。我的意思是否可以写在ON的后边,不是写在where里边!
      

  7.   

    select * 
          from Tbl1 left join Tbl2 on Tbl1.id in (select T2 .id from Tbl2 T2 )你这两个不是同一个表么,呵呵,直接把ID等于就行了呀
      

  8.   

    on 后面跟一个返回true or false的值
    什么什么in什么什么 不也是返回true or false
    应该是可以的
      

  9.   

    select * from tb
    /*
    id          name
    ----------- --------------------
    2           aaa
    4           bbb(2 行受影响)
    */select * 
    from tb t1 
    join tb t2 on t1.id in (2) and t2.id in(4)
    /*
    id          name                 id          name
    ----------- -------------------- ----------- --------------------
    2           aaa                  4           bbb(1 行受影响)*/当然是可以的
      

  10.   

    DECLARE @A TABLE(ID INT)
    DECLARE @B TABLE(ID INT)INSERT @A SELECT 1 UNION ALL SELECT 2
    INSERT @B SELECT 1 
    select * from @a a  left join @b b on a.id in(select id from @b)
    (所影响的行数为 2 行)
    (所影响的行数为 1 行)ID          ID          
    ----------- ----------- 
    1           1
    2           NULL(所影响的行数为 2 行)可以这么写
      

  11.   

    SQL codeselect * from Tbl1 left join Tbl2 on Tbl1.id=tbl2.id where tbl2.id in(...)