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 tutorial cross join

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]