Cartesian Product: cross join : Cross Join « Table Joins « SQL Server / T-SQL






Cartesian Product: cross join


1>
2> CREATE TABLE employee  (emp_no    INTEGER NOT NULL,
3>                         emp_fname CHAR(20) NOT NULL,
4>                         emp_lname CHAR(20) NOT NULL,
5>                         dept_no   CHAR(4) NULL)
6>
7> insert into employee values(1,  'Matthew', 'Smith',    'd3')
8> insert into employee values(2,  'Ann',     'Jones',    'd3')
9> insert into employee values(3,  'John',    'Barrimore','d1')
10> insert into employee values(4,  'James',   'James',    'd2')
11> insert into employee values(5,  'Elsa',    'Bertoni',  'd2')
12> insert into employee values(6,  'Elke',    'Hansel',   'd2')
13> insert into employee values(7,  'Sybill',  'Moser',    'd1')
14>
15> select * from employee
16> GO

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)
emp_no      emp_fname            emp_lname            dept_no
----------- -------------------- -------------------- -------
          1 Matthew              Smith                d3
          2 Ann                  Jones                d3
          3 John                 Barrimore            d1
          4 James                James                d2
          5 Elsa                 Bertoni              d2
          6 Elke                 Hansel               d2
          7 Sybill               Moser                d1

(7 rows affected)
1>
2>
3> CREATE TABLE department(dept_no   CHAR(4) NOT NULL,
4>                         dept_name CHAR(25) NOT NULL,
5>                         location  CHAR(30) NULL)
6>
7> insert into department values ('d1', 'developer',   'Dallas')
8> insert into department values ('d2', 'tester',      'Seattle')
9> insert into department values ('d3', 'marketing',  'Dallas')
10>
11> select * from department
12> GO

(1 rows affected)

(1 rows affected)

(1 rows affected)
dept_no dept_name                 location
------- ------------------------- ------------------------------
d1      developer                 Dallas
d2      tester                    Seattle
d3      marketing                 Dallas

(3 rows affected)
1>
2>
3> -- Cartesian Product
4>
5> -- ANSI join syntax:
6>
7> SELECT * FROM employee CROSS JOIN department
8> GO
emp_no      emp_fname            emp_lname            dept_no dept_no dept_name                 location
----------- -------------------- -------------------- ------- ------- ------------------------- ------------------
          1 Matthew              Smith                d3      d1      developer                 Dallas
          2 Ann                  Jones                d3      d1      developer                 Dallas
          3 John                 Barrimore            d1      d1      developer                 Dallas
          4 James                James                d2      d1      developer                 Dallas
          5 Elsa                 Bertoni              d2      d1      developer                 Dallas
          6 Elke                 Hansel               d2      d1      developer                 Dallas
          7 Sybill               Moser                d1      d1      developer                 Dallas
          1 Matthew              Smith                d3      d2      tester                    Seattle
          2 Ann                  Jones                d3      d2      tester                    Seattle
          3 John                 Barrimore            d1      d2      tester                    Seattle
          4 James                James                d2      d2      tester                    Seattle
          5 Elsa                 Bertoni              d2      d2      tester                    Seattle
          6 Elke                 Hansel               d2      d2      tester                    Seattle
          7 Sybill               Moser                d1      d2      tester                    Seattle
          1 Matthew              Smith                d3      d3      marketing                 Dallas
          2 Ann                  Jones                d3      d3      marketing                 Dallas
          3 John                 Barrimore            d1      d3      marketing                 Dallas
          4 James                James                d2      d3      marketing                 Dallas
          5 Elsa                 Bertoni              d2      d3      marketing                 Dallas
          6 Elke                 Hansel               d2      d3      marketing                 Dallas
          7 Sybill               Moser                d1      d3      marketing                 Dallas

(21 rows affected)
1>
2> drop table employee
3> drop table department
4> GO
1>
           
       








Related examples in the same category

1.Cross join tables
2.ANSI join syntax for cross join