我有3个表,我必须将表A与表B内连接,但是在表A和表C之间的左外表.
我可以在同一个查询中组合外部和内部联接吗?我可以嵌套查询并获得所需的结果,但我无法在同一查询中执行这两个连接.看来,在其他SQL语言中,加入的顺序很重要.这是SQL Server中的情况吗?
好的,这是场景.
考虑3个表.表A,表F,表D.
我将需要记录集来包含D中的所有行,而不管它是否存在于F中(在它与A连接的内部之后).因此,我想到了一个外部联接.我需要的是:
kri*_*tof 17
如果我理解正确你想要这样的东西:
select
*
from
a
left outer join c
inner join b on c.bID = b.ID
on a.cID = c.ID
Run Code Online (Sandbox Code Playgroud)
对于我的情况,我需要为我的查询放置表别名才能正常工作:
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
Run Code Online (Sandbox Code Playgroud)
当然你可以在同一个查询中加入:-
FROM TableA a
INNER JOIN Table b ON a.TableA_ID = b.TableA_ID
LEFT OUTER JOIN Table c ON a.TableA_ID = c.TableA_ID
Run Code Online (Sandbox Code Playgroud)