Nie bardzo wiem o co chodzi w komendzie OUTER JOIN i czym się różni od zwykłego INNER JOIN. Podstawowe "słowniki" MySQL nie opisują OUTER JOIN a dokumnetacja ze strony mysql:
http://dev.mysql.com/doc/refman/5.0/en/join.html
niewiele mi mówi, jakieś zdawkowe informacje.
Może ktoś wyjaśnić o co tu chodzi?
Spotkałem sie też ze sformułowaniem że OUTER JOIN może być w stylu ANSI - też nie wiem o co chodzi.
- Rejestracja:ponad 14 lat
- Ostatnio:ponad 12 lat
- Postów:150

- Rejestracja:ponad 14 lat
- Ostatnio:prawie 10 lat

- Rejestracja:około 21 lat
- Ostatnio:około 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
Inner join zwraca tylko wyniki w których udało sie dopasować lewą do prawej strony (w szczególności jeśli jakaś opcja po którejś ze stron nie występuje, to nie ma jej w wynikach)
outer join zwraca całą tabelę z jednej strony i to co się udało dopasować z drugiej strony (strona zalezy od tego czy to left outer join czy right outer join), w efekcie możesz mieć w wynikach coś w stylu:
ID | Value
1 | "ala ma kota"
2 | NULL
- Rejestracja:ponad 14 lat
- Ostatnio:ponad 12 lat
- Postów:150
Aaaa ..
Czyli z tego co widzę LEFT OUTER JOIN to jest inaczej
LEFT JOIN ?
To sprawa jest prosta bo LEFT JOIN i RIGHT JOIN to znam. Myślałem tylko ze słówko OUTER definiuje zupełnie nową funkcję łączenia a tak naprawdę to to samo co bez tego słówka.
A co z tym ANSI? Spotkał się ktoś z tym?
- Rejestracja:około 22 lata
- Ostatnio:ponad 12 lat
- Postów:3079
ANSI to skrót od American National Standards Institute. Zapytania ANSI to zapytania zgodne z jakimś konkretnym ustalonym standardem. Przykładowo w SQL ANSI-89 inner join wygląda tak:
SELECT * FROM a, b WHERE a.id = b.id;
a w SQL ANSI-92 inner join wygląda tak:
SELECT * FROM a INNER JOIN b ON a.id = b.id
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.