我有三个表:R,S和P.SQL连接三个表,连接优先
表R通过外键连接S;有应该是S中至少一个的记录,所以我可以加入:
SELECT
*
FROM
R
JOIN S ON (S.id = R.fks)
如果有S中的任何记录,那么我没有得到任何行,这很好。
然后表信息系统S有P连接,其中的记录为P可能会或可能不会出现,并与S.
加入所以我做
SELECT
*
FROM
R
JOIN S ON (S.id = R.fks)
LEFT JOIN P ON (P.id = S.fkp)
,如果我想要第二个连接被捆绑与S不是R,就像如果我可以使用括号:
SELECT
*
FROM
R
JOIN (S ON (S.id = R.fks) JOIN P ON (P.id = S.fkp))
或者是,R,S和P之间的乘积的已经是一个自然的行为?
你能否解释一下这部分“如果我想第二个连接被束缚不是以R” 眼下表的连接为R带S加入,然后留下P. – 2010-09-23 16:05:37
加入我试着了解是否有一种方法可以优先考虑连接,就像它们是算术运算符一样。如果这在连接条件中是隐含的,我不明白。 – vulkanino 2010-09-23 16:08:21
给我们一个你希望实现的与普通联接不同的数据例子,我们可以更好地告诉你该怎么做。派生表可能做你想做的事情,但我不确定你想要什么。 – HLGEM 2010-09-23 17:25:29