Złączenie SQL RIGHT JOIN Zawiera wszystkie wiersze z prawej tabeli i te, które pasują z lewej strony. Dla tych, które nie pasują z prawej strony, NULL jest zwracany w odpowiednich kolumnach.
To jest kluczowa różnica między SQL RIGHT JOIN a INNER JOIN. Podczas gdy wewnętrzne złączenie zwraca tylko wiersze pasujące do warunku złączenia, w prawym zewnętrznym złączeniu, gwarantowane jest, że wszystkie wiersze prawej tabeli są zawarte w wyniku.
Sprawdź tę ilustrację:
Sprawdź wyniki dla Freda i zauważ, że nie ma pasującego produktu, jest on NULL. Również, the nie jest zawarte w wyniku.
Inna nazwa dla złączenia prawego to Złączenie zewnętrzne prawe.
Ogólna postać RIGHT JOIN to:
SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn
Notatki:
- W tym przykładzie tabela2 jest tabelą Right, a tabela1 lewą.
- Jeśli nie ma zgodności między wartościami commonColumn, tabela1.column1 zwraca NULL
SQL RIGHT JOIN Przykład
Nie każda osoba w bazie danych AdventureWorks jest pracownikiem. Wypiszmy każdą osobę oraz niektóre z jej danych o zatrudnieniu, jeśli takowe istnieją. W tym celu użyjemy złączenia PRAWIDŁOWEGO.
Pamiętajmy, że jest to złączenie PRAWE, ponieważ tabela osób, która posiada każdy wiersz, który chcemy zwrócić, znajduje się po prawej stronie operatora złączenia.
Spójrz na wyniki i zauważ, że dla niektórych osób występują wartości NULL. Dzieje się tak, ponieważ nie ma odpowiednich wpisów w tabeli Employee. RIGHT JOIN działa zgodnie z reklamą, zwraca wszystkie dopasowania i NULL, gdy nie ma żadnego.
Ważne punkty:
Przy pracy z RIGHT JOINS należy pamiętać, że dopasowanie z jednej tabeli do drugiej może pasować do wielu wierszy. Oznacza to, że Twój wynik może mieć więcej wierszy w wyniku, niż masz w obu tabelach.
Gdy kolumny nie pasują do siebie, zapytanie zwraca prawy wiersz i NULL dla kolumn lewej tabeli…