Widziałem zapytanie z użyciem LEFT JOIN
w przeciwieństwie do lub LEFT OUTER
.Co to jest POŁĄCZENIE LEWE w PostgreSQL
Czym dokładnie jest LEFT JOIN
?
Widziałem zapytanie z użyciem LEFT JOIN
w przeciwieństwie do lub LEFT OUTER
.Co to jest POŁĄCZENIE LEWE w PostgreSQL
Czym dokładnie jest LEFT JOIN
?
Tam, gdzie inner join
zwraca tylko wpisy pasujące do obu tabel, left join
pobiera wszystkie wpisy z pierwszej tabeli i wszystkie pasujące do drugiej tabeli. right join
jest rewers left join
(tj: wszystko z drugiej tabeli)
Więc jeśli TABLEA jest
A B
1 a
2 b
3 c
i TableB jest
A B
1 d
2 e
Następnie Select * from TableA inner join TableB on TableA.A = TableB.A
powraca
1 a 1 d
2 b 2 e
I Select * from TableA left join TableB on TableA.A = TableB.A
zwraca
1 a 1 d
2 b 2 e
3 c null null
Myślę, że wyniki są nieprawidłowe. Pierwsze zapytanie powinno dać 1 a 1 d/2b 2 e Drugie zapytanie powinno dać: 1 a 1 d/2b 2 e/3 c NULL NULL. –
@RolandBouman Tak, powinny :) – podiluska
To jest taka sama jak LEFT OUTER (zewnętrzna jest dorozumiany ponieważ INNER JOIN wymaga dwustronnej dopasowanie więc LEFT INNER JOIN
nie miałoby sensu). To samo dotyczy RIGHT JOIN
i FULL JOIN
są równoważne RIGHT OUTER JOIN
i FULL OUTER JOIN
odpowiednio
Bardziej graficzny wyjaśnienie: [Visual reprezentacja-of-SQL-dołącza] (http://www.codeproject.com/Articles/33052/Visual -Reprezentacja-SQL-Joins) – doctore
Wszystkie typy JOIN PostgreSQL są wyjaśnione [w podręczniku] (http://www.postgresql.org/docs/current/interactive/queries-table-expressions.html#QUERIES-JOIN) w tym przykłady. Zatem słowo kluczowe "OUTER" jest opcjonalne dla połączeń "LEFT", "RIGHT" i "FULL". –