SELECT dbo.table1.*, dbo.table2.*
FROM dbo.table1 RIGHT OUTER JOIN
      dbo.table2 ON dbo.table1.col1 = dbo.table2.col2

解决方案 »

  1.   

    请注意是一个对多个的join,非一个对一个
      

  2.   

    SELECT dbo.table1.*, dbo.table2.*,dbo.table3.*
    FROM dbo.table1 
    RIGHT OUTER JOIN  dbo.table2 
    ON dbo.table1.col1 = dbo.table2.col2
    RIGHT OUTER JOIN  dbo.table3 
    ON dbo.table1.col1 = dbo.table3.col3....
      

  3.   

    我写详细些,希望有人回答。
    有一个sql里面包含有一个表对5、6个表的左连接,是用oracle特有(+)表达式写的
    and table1.a=table2.a(+)
    and table1.b=table3.b(+)
    and table1.c=table4.c(+)
    …………
    改写成
    from (table1 t1 left join table2 t2 on table1.a=table2.a),(table1 t11 left join table3 t3 on table1.b=table3.b),…………
    这个talbe1 的多次出现,并且名称还不能重复,效率非常低(大概4个join 后就不执行了)
    现在我寻求解决方案:
    1,能否用改写成不使用join的标准sql?
    2,如果改成程序实现应该怎么建模?
    3,有没有效率更高的一表join多表的标准sql写法?
    4,高手有什么建议?