SQL Cross Join
What is Cross Join in SQL?
The SQL CROSS JOIN produces a result set which is the number of rows in the first table multiplied by the number of rows in the second table if no WHERE clause is used along with CROSS JOIN.This kind of result is called as Cartesian Product.
If WHERE clause is used with CROSS JOIN, it functions like an INNER JOIN.
Pictorial Presentation of SQL Cross Join syntax
An alternative way of achieving the same result is to use column names separated by commas after SELECT and mentioning the table names involved, after a FROM clause.
Syntax:
SELECT * FROM table1 CROSS JOIN table2;
Example:
Here is an example of cross join in SQL between two tables.
Sample table: foods
Sample table: company
To get item name and item unit columns from foods table and company name, company city columns from company table, after a CROSS JOINING with these mentioned tables, the following SQL statement can be used:
SQL Code:
SELECT foods.item_name, -- Selecting the item name from the 'foods' table.
foods.item_unit, -- Selecting the item unit from the 'foods' table.
company.company_name, -- Selecting the company name from the 'company' table.
company.company_city -- Selecting the company city from the 'company' table.
FROM foods -- Specifying the first table to select data from, which is 'foods'.
CROSS JOIN company; -- Performing a cross join with the 'company' table.
Explanation:
- The SQL code retrieves specific columns from two tables, 'foods' and 'company', and combines them into a single result set using a cross join.
- The query selects the 'item_name' and 'item_unit' columns from the 'foods' table and the 'company_name' and 'company_city' columns from the 'company' table.
- It performs a cross join between the 'foods' and 'company' tables, resulting in a Cartesian product where every row from the 'foods' table is combined with every row from the 'company' table.
or
SQL Code:
SELECT foods.item_name, -- Selecting the item name from the 'foods' table.
foods.item_unit, -- Selecting the item unit from the 'foods' table.
company.company_name, -- Selecting the company name from the 'company' table.
company.company_city -- Selecting the company city from the 'company' table.
FROM foods, company; -- Specifying the tables to select data from, 'foods' and 'company', using comma syntax.
Explanation:
- The SQL code retrieves specific columns from two tables, 'foods' and 'company', without specifying a join condition, using comma syntax to indicate a cross join.
- The query selects the 'item_name' and 'item_unit' columns from the 'foods' table and the 'company_name' and 'company_city' columns from the 'company' table.
- It performs a cross join between the 'foods' and 'company' tables, resulting in a Cartesian product where every row from the 'foods' table is combined with every row from the 'company' table.
How cross joining happend into two tables
Output:
ITEM_NAME ITEM_UNIT COMPANY_NAME COMPANY_CITY --------------- ---------- --------------- --------------- Chex Mix Pcs Order All Boston Cheez-It Pcs Order All Boston BN Biscuit Pcs Order All Boston Mighty Munch Pcs Order All Boston Pot Rice Pcs Order All Boston Jaffa Cakes Pcs Order All Boston Salt n Shake Pcs Order All Boston Chex Mix Pcs Jack Hill Ltd London Cheez-It Pcs Jack Hill Ltd London BN Biscuit Pcs Jack Hill Ltd London Mighty Munch Pcs Jack Hill Ltd London Pot Rice Pcs Jack Hill Ltd London Jaffa Cakes Pcs Jack Hill Ltd London Salt n Shake Pcs Jack Hill Ltd London Chex Mix Pcs Akas Foods Delhi Cheez-It Pcs Akas Foods Delhi BN Biscuit Pcs Akas Foods Delhi Mighty Munch Pcs Akas Foods Delhi Pot Rice Pcs Akas Foods Delhi Jaffa Cakes Pcs Akas Foods Delhi Salt n Shake Pcs Akas Foods Delhi Chex Mix Pcs Foodies. London ......... .........
More presentaion of the said output:
CROSS JOINS: Relational Databases
Key points to remember
Click on the following to get the slides presentation -
Outputs of the said SQL statement shown here is taken by using Oracle Database 10g Express Edition.
Check out our 1000+ SQL Exercises with solution and explanation to improve your skills.
Previous: SQL NATURAL JOIN
Next:SQL OUTER JOIN
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics