loading

MySQL CROSS JOIN

MySQL CROSS JOIN Keyword

All records from both tables are returned using the CROSS JOIN keyword (table1 and table2).

Mysql Cross Join -

CROSS JOIN Syntax

				
					SELECT column_name(s)
FROM table1
CROSS JOIN table2;
				
			

Note: CROSS JOIN can potentially return very large result-sets!

Demo Database

We’ll be using the well-known Northwind sample database in this tutorial.

A sample from the “Customers” table is shown below:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1

Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico

And a selection from the “Orders” table:

OrderIDCustomerIDEmployeeIDOrderDateShipperID
10308271996-09-183
103093731996-09-191
103107781996-09-202

MySQL CROSS JOIN Example

All clients and all orders are selected using the SQL statement that follows:

Example

				
					SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders;
				
			

Note: Regardless of whether the other table matches or not, the CROSS JOIN keyword returns all matching records from both tables. Therefore, such rows will also be listed if there are rows in “Customers” that do not have matching rows in “Orders,” or if there are rows in “Orders” that do not match rows in “Customers.”

In the event that there is a relationship between tables 1 and 2, adding a WHERE clause will cause the CROSS JOIN to yield the same outcome as the INNER JOIN clause:

Example

				
					SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders
WHERE Customers.CustomerID=Orders.CustomerID;
				
			
Share this Doc

MySQL CROSS JOIN

Or copy link

Explore Topic