如果可以簡單地編寫一個完整的外連接,那麼左連接(或者甚至可能是內連接)的用途是什麼?所以爲什麼要留下連接(爲什麼不在外部連接中加入where條件)
playorm=# select * from trade as a full outer join Account as b on b.id=a.accoun
tid where a.id = a.id;
這最終返回所有相同的結果,左內連接將返回。
,或者如果你想要一個內部聯接,你可以做到這一點
playorm=# select * from trade as a full outer join Account as b on b.id=a.accoun
tid where a.id = a.id AND b.id = b.id;
這最終返回所有的INNER JOIN將返回相同的結果。
我只是覺得這是有趣的是我所有的想法。我本來認爲一個左外連接會返回零值+條件匹配,但發現條件必須匹配,這是有點怪異的,因爲在這個內部連接消除匹配的記錄(可能是因爲連接是在表達式匹配之前完成的,所以a .accountid是空的where子句中的無用的部分...
select * from trade as a inner join Account as b on b.id=a.accountid
here (b.isActive=false OR a.accountid is null) and a.number < 15;
後, 院長
這個問題是重複的:http://stackoverflow.com/questions/419375/sql-join-differences –
啊,我知道內部和外部連接的區別。這個問題顯然不是重複的。 –
我編輯了問題以突出顯示我的意圖....兩個外連接查詢實際上是一個左連接和內連接,即使您在SQL中讀取了一個OUTER JOIN ....我認爲您證明了第一個人的觀點下面的答案相當好,雖然;)。 –