SQL Cross Join is a versatile operation used to merge two tables, creating a Cartesian product of their rows. When every row of the first table combines with each row of the second table, the result is a comprehensive dataset, offering a myriad of possibilities for analysis.
Let's break down the syntax for performing a Full outer Join in SQL:
SELECT ExampleTableOne.Column1, ExampleTableTwo.Column2
FROM ExampleTableOne
CROSS JOIN ExampleTableTwo
Here, ExampleTableOne and ExampleTableTwo are the participating tables, and column_name is the linking column. The beauty of the full outer join lies in its inclusivity – it returns all rows, whether matched or unmatched, from both table
Table 1: employee_detail
CREATE TABLE employee_detail (
emp_id INT NOT NULL,
emp_name VARCHAR (20) NOT NULL,
emp_salary INT NOT NULL,
PRIMARY KEY (emp_id)
);
emp_id | emp_name | emp_salary |
---|---|---|
001 | John Doe | 60000 |
002 | Jane Smith | 55000 |
003 | Mike Johnson | 62000 |
Table 2: department_detail
CREATE TABLE department_detail (
dept_id INT NOT NULL,
dept_name VARCHAR (20) NOT NULL,
PRIMARY KEY (dept_id)
);
dept_id | dept_name |
---|---|
001 | HR |
002 | IT |
Now, let's say you want to generate a list of all possible combinations of employee_detail and department_detail using a cross join:
SELECT
e.emp_id,
e.emp_name,
e.dept_id,
d.dept_name
FROM employee_details e
CROSS JOIN department_details d;
emp_id | emp_name | emp_salary | dept_id | dept_name |
---|---|---|---|---|
001 | John Doe | 60000 | 001 | HR |
002 | Jane Smith | 55000 | 002 | IT |
003 | Mike Johnson | 62000 | 001 | HR |
001 | John Doe | 60000 | 002 | IT |
002 | Jane Smith | 55000 | 001 | HR |
003 | Mike Johnson | 62000 | 002 | IT |
The result of this query will be a combination of all employees with all projects, creating a Cartesian product. In this example, since there are three employees and two projects, the result will have 3 * 2 = 6 rows.
This is a simple example, and in practice, you'd typically use more complex conditions and join types to relate tables based on specific criteria. Cross joins should be used with caution, as they can lead to large result sets and may not be suitable for all situations.