Cross join

Een CROSS JOIN voegt elke rij van een tabel samen met elke andere rij in een andere tabel. Als je een tabel hebt met twintig rijen (employees bijvoorbeeld) die je samenvoegt met een tabel van acht rijen (departments bijvoorbeeld), dan krijg je 160 rijen als resultaat. Elke werknemer (employee) wordt aan elke afdeling (department) gekoppeld. In zo'n geval spreekt men van een Cartesiaans of Cartesisch product, zoals al eerder besproken.

 

clip0278

 

 

SELECT last_name, department_name

FROM employees CROSS JOIN departments;

 

clip0131

 

 

Je begrijpt dat dit niet de bedoeling kan zijn. CROSS kan overigens gewoon worden weggelaten voor hetzelfde effect.

 

SELECT last_name, department_name

FROM employees JOIN departments;

 

De CROSS JOIN wordt in de praktijk zelden gebruikt, maar je kunt bijvoorbeeld testen of kolomnamen en tabelnamen kloppen in een query en daarna pas de query verfijnen.