MySQL - OUTER JOIN

P1
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:150
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.

unikalna_nazwa
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 10 lat
0

Pół giga extra na dropboxie? Pół giga extra na dropboxie! Tyle wygrać! >>Klik here<<
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
P1
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:150
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?

AP
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 12 lat
  • Postów:3079
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:

Kopiuj
SELECT * FROM a, b WHERE a.id = b.id;

a w SQL ANSI-92 inner join wygląda tak:

Kopiuj
SELECT * FROM a INNER JOIN b ON a.id = b.id
P1
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:150
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.

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.