SQL CROSS JOIN

SQL CROSS JOIN



DEFINICJA

CROSS JOIN służy do łączenia tabel przez utworzenie par wszystkich rekordów z jednej tabeli i z drugiej, takie połączenie zbiorów nazywamy „iloczynem kartezjańskim”. Chodzi o to, że każdy rekord z jednej tabeli stworzy parę ze wszystkimi rekordami z drugiej tabeli. Połączenie takie przedstawia poniższy rysunek.
SQL CROSS JOIN grafika


SQL CROSS JOIN składnia

SELECT
nazwy_kolumy(kolumn)
FROM
tabela1 CROSS JOIN tabela2


Przykład zastosowania CROSS JOIN (baza Northwind)

Zrób zestawienie wszystkich pracowników gdzie każdy pracownik tworzy parę z wszystkimi pozostałymi pracownikami. Żadna para pracowników nie może się powtarzać.

SELECT
P1.LastName + ‚ ‚ + P1.FirstName AS [Pierwszy pracownik]
,P2.LastName + ‚ ‚ + P2.FirstName AS [Drugi pracownik]
FROM
Employees P1 CROSS JOIN Employees P2
WHERE
P1.LastName > P2.LastName
ORDER BY
[Pierwszy pracownik]