SQL - CROSS JOIN Operacija


Korištenje unakrsnih pridruživanja

Ako ne navedete uslov pridruživanja prilikom spajanja dvije tabele, sistem baze podataka kombinuje svaki red iz prve tabele sa svakim redom iz druge tabele. Ova vrsta pridruživanja naziva se poprečna spojnica ili kartezijanski proizvod. Sljedeći Venov dijagram ilustruje kako funkcioniše poprečno pridruživanje.



Da bismo to lako razumjeli, pogledajmo sljedeće tabele zaposlenih (employees) i odjela (departments).



Broj redova u unakrsnom spajanju množioc je broja redova u svakoj tabeli. Evo jednostavnog primjera operacije unakrsnog pridruživanja.

SELECT t1.emp_id, t1.emp_name, t1.hire_date, t2.dept_name
FROM employees AS t1 CROSS JOIN departments AS t2;

Nakon izvršavanja gornje naredbe, dobićete rezultat poput ovakoga:



Kao što vidite, poprečno pridruživanje nije toliko korisno kao ostala spajanja koja smo obrađivali u prethodnim lekcijama. Budući da upit nije specifikovao uslov pridruživanja, svaki red iz tabele zaposlenih kombinuje se sa svakim redom iz tablele odjeljenja. Zbog toga ako niste sigurni da želite kartezijski proizvod, nemojte koristiti poprečno pridruživanje.