MySQL - OUTER JOIN

0

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.

0

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

0

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?

0

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
0

Dzięki. Bo już myślałem że tu chodzi o jakieś porównywanie kolumn do JOIN na podstawie znaków z tablicy ANSI.

1 użytkowników online, w tym zalogowanych: 0, gości: 1