当前位置:  开发笔记 > 编程语言 > 正文

SQL Server - 组合OUTER和INNER联接

如何解决《SQLServer-组合OUTER和INNER联接》经验,为你挑选了2个好方法。



1> kristof..:

如果我理解正确你想要这样的东西:

select
    *
from
    a 
    left outer join c
        inner join b on c.bID = b.ID
    on a.cID = c.ID


整蛊!如果你将"a.cID = c.ID"移到"左外连接c"的正下方,这不会给出相同的结果,或者我只是遗漏了什么?这种行为是否记录在某处?我没有意识到on没有直接跟随加入.

2> gamov..:

对于我的情况,我需要为我的查询放置表别名才能正常工作:

SELECT * FROM ("purchased_items" p1
     INNER JOIN "purchase_orders" po1 ON (po1."id" = p1."purchase_order_id")) AS p4
LEFT OUTER JOIN (purchased_items p2
      INNER JOIN "purchase_orders" po2 ON (po2."id" = p2."purchase_order_id")) AS p5
ON (p4.item_variant_id = p5.item_variant_id AND p4.delivery_date < p5.delivery_date) 
WHERE p5.delivery_date IS NULL AND p4.delivered <> 0 

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有