X

Aleproste na FaceBook'u

Reklama.

[PHP][MySQL] Zapytania MySQL w PHP :: JOIN czyli łączenie tabel

JOIN - łączenie naturalne:

SELECT a.kolumna1, b.kolumna1
FROM tabela1 a JOIN tabela2 b ON a.kolumna_id = b.kolumna_id

LEFT JOIN - lewostronne połączenie tabel. Takie połączenie zwróci wszystkie rekordy tabeli lewostronnej ( wymienionej po słowie FROM )  oraz rekordy z tabeli prawostronnej ( wymienionej po słowie JOIN ), które spełniają kryterium powiązania:

SELECT a.kolumna1, b.kolumna1
FROM tabela1 a LEFT JOIN tabela2 b ON a.kolumna_id = b.kolumna_id

RIGHT JOIN - prawostronne połączenie tabel. Takie połączenie zwróci wszystkie rekordy tabeli prawostronnej ( wymienionej po słowie JOIN )  oraz rekordy z tabeli lewostronnej ( wymienionej po słowie FROM ), które spełniają kryterium powiązania:

SELECT a.kolumna1, b.kolumna1
FROM tabela1 a RIGHT JOIN tabela2 b ON a.kolumna_id = b.kolumna_id

FULL JOIN - pełne (obustronne) połączenie tabel. Takie połączenie zwróci wszystkie rekordy tabeli prawostronnej ( wymienionej po słowie JOIN )  oraz wszystkie rekordy z tabeli lewostronnej ( wymienionej po słowie FROM ),wiążąc jednocześnie rekordy, które spełniają kryterium powiązania:

SELECT a.kolumna1, b.kolumna1
FROM tabela1 a FULL JOIN tabela2 b ON a.kolumna_id = b.kolumna_id

CROSS JOIN - połączenie krzyżowe. Takie połączenie zwraca wszystkie kombinacje łączonych tabel, dając w efekcie m x n rekordów ( gdzie n = licznba rekordów jednej tabeli, a m = liczba rekordów drugiej tabeli)

SELECT a.kolumna1, b.kolumna1
FROM tabela1 a CROSS JOIN tabela2 b

NATURAL JOIN - połączenie naturalne wiążące tabele na podstawie identycznych nazw kolumn:

SELECT a.kolumna1, b.kolumna1
FROM tabela1 a NATURAL JOIN tabela2 b

INNER JOIN - połączenie wewnętrzne. Jest to typ złączenia podstawowego JOIN, które pozwala na łączenie więcej niż dwóch tabel:

SELECT a.kolumna, b.kolumna, c.kolumna
FROM tabela1 a INNER JOIN tabela2 b ON a.kolumna_id = b.kolumna_id
INNER JOIN tabela3 c ON a.kolumna_id = c.kolumna_id
...

opublikowane 28-02-2011174525 powrót

© aleproste.pl v.10 Projekt i realizacja projekt.etvn.pl & aleproste.pl