b'\n_START_ARTICLE_\nJoin (SQL)\n_START_SECTION_\nNotacja JOIN ON\n_START_PARAGRAPH_\nW tej notacji w wersji podstawowej wpisujemy tabele w klauzuli FROM wed\xc5\x82ug schematu tabela1 JOIN tabela2 ON (warunek z\xc5\x82\xc4\x85czenia). W zale\xc5\xbcno\xc5\x9bci od typu z\xc5\x82\xc4\x85cze\xc5\x84 cz\xc4\x99\xc5\x9b\xc4\x87 ON (...) mo\xc5\xbce zosta\xc4\x87 pomini\xc4\x99ta b\xc4\x85d\xc5\xba zast\xc4\x85piona wyra\xc5\xbceniem USING (warunek z\xc5\x82\xc4\x85czenia), s\xc5\x82owo kluczowe JOIN mo\xc5\xbce zosta\xc4\x87 rozszerzone do np. CROSS JOIN. Wszystkie modyfikacje tej notacji zostan\xc4\x85 zaprezentowane przy okazji omawiania typ\xc3\xb3w z\xc5\x82\xc4\x85cze\xc5\x84._NEWLINE_Generalna sk\xc5\x82adnia jest nast\xc4\x99puj\xc4\x85ca:_NEWLINE_SELECT tabela1.kolumna,tabela2.kolumna,...FROM tabela1[CROSS JOIN tabela2][NATURAL JOIN tabela2][JOIN tabela2 USING (nazwy_kolumn)][JOIN tabela2ON (tabela1.kolumna = tabela2.kolumna)][LEFT|RIGHT|FULL OUTER JOIN tabela2ON (tabela1.kolumna = tabela2.kolumna)];_NEWLINE_Np._NEWLINE_SELECT p.nazwisko as Kierownik, p1.nazwa,p1.termin_oddaniaFROM pracownicy p JOIN projekty p1ON (p.id = p1.szef_projektu);\n_START_SECTION_\nZ\xc5\x82\xc4\x85czenie typu INNER JOIN\n_START_PARAGRAPH_\nKonstrukcja typu INNER JOIN jest z\xc5\x82\xc4\x85czeniem warunkowym o postaci:_NEWLINE_SELECT kolumna1, kolumna2FROM tabela1 [INNER] JOIN tabela2ON wyra\xc5\xbcenie_warunkowe_NEWLINE_W zapytaniu s\xc5\x82owo INNER jest opcjonalne. W wyniku tego z\xc5\x82\xc4\x85czenia pojawi\xc4\x85 si\xc4\x99 tylko te wiersze z tabela tabela1 i tabela2, kt\xc3\xb3re spe\xc5\x82ni\xc4\x85 warunki wymienionie po klauzuli ON. Jest ona odpowiednikiem znanej instrukcji:_NEWLINE_SELECT kolumna1, kolumna2, ...,kolumnaNFROM tabela1, tabela2, ...,tabelaNWHERE warunki;\n_START_SECTION_\nZ\xc5\x82\xc4\x85czenie typu Equi-JOIN\n_START_PARAGRAPH_\nTak naprawd\xc4\x99 jest to prawie ka\xc5\xbcde z\xc5\x82\xc4\x85czenie, kt\xc3\xb3re do tej pory rozpatrywali\xc5\x9bmy. Charakteryzuje si\xc4\x99 tym, \xc5\xbce w warunku z\xc5\x82\xc4\x85czenia (czy to wyst\xc4\x99puj\xc4\x85cym w klauzuli ON czy te\xc5\xbc w warunku WHERE) wyst\xc4\x99puje znak r\xc3\xb3wno\xc5\x9bci._NEWLINE_SELECT p.nazwisko, p1.nazwaFROM pracownicy p JOIN projekty p1ON p.id = p1.szef_projektu;_NEWLINE_SELECT p.nazwisko, p1.nazwaFROM pracownicy p, projekty p1WHERE p.id = p1.szef_projektu;\n_START_SECTION_\nZ\xc5\x82\xc4\x85czenie typu Anti Join\n_START_PARAGRAPH_\nJest to szczeg\xc3\xb3lny przypadek nier\xc3\xb3wnoz\xc5\x82\xc4\x85cze\xc5\x84, w kt\xc3\xb3rym \xc5\x82\xc4\x85cznikiem jest operator\xc2\xa0!=._NEWLINE_SELECT d1.nazwa, d2.nazwaFROM dzialy d1 JOIN dzialy d2ON d1.adres != d2.adres;_NEWLINE_SELECT d1.nazwa, d2.nazwaFROM dzialy d1, dzialy d2WHERE d1.adres != d2.adres;'