it is the Cartesian product of all the rows from all tables participating in the SELECT statement : Cross Join « Table Join « SQL Server / T-SQL Tutorial






8>
9>
10> CREATE TABLE titles(
11>    title_id       varchar(20),
12>    title          varchar(80)       NOT NULL,
13>    type           char(12)          NOT NULL,
14>    pub_id         char(4)               NULL,
15>    price          money                 NULL,
16>    advance        money                 NULL,
17>    royalty        int                   NULL,
18>    ytd_sales      int                   NULL,
19>    notes          varchar(200)          NULL,
20>    pubdate        datetime          NOT NULL
21> )
22> GO
1>
2> insert titles values ('1', 'Secrets',   'popular_comp', '1389', $20.00, $8000.00, 10, 4095,'Note 1','06/12/94')
3> insert titles values ('2', 'The',       'business',     '1389', $19.99, $5000.00, 10, 4095,'Note 2','06/12/91')
4> insert titles values ('3', 'Emotional', 'psychology',   '0736', $7.99,  $4000.00, 10, 3336,'Note 3','06/12/91')
5> insert titles values ('4', 'Prolonged', 'psychology',   '0736', $19.99, $2000.00, 10, 4072,'Note 4','06/12/91')
6> insert titles values ('5', 'With',      'business',     '1389', $11.95, $5000.00, 10, 3876,'Note 5','06/09/91')
7> insert titles values ('6', 'Valley',    'mod_cook',     '0877', $19.99, $0.00,    12, 2032,'Note 6','06/09/91')
8> insert titles values ('7', 'Any?',      'trad_cook',    '0877', $14.99, $8000.00, 10, 4095,'Note 7','06/12/91')
9> insert titles values ('8', 'Fifty',     'trad_cook',    '0877', $11.95, $4000.00, 14, 1509,'Note 8','06/12/91')
10> GO

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)
1>
2> CREATE TABLE titleauthor(
3>    au_id          varchar(20),
4>    title_id       varchar(20),
5>    au_ord         tinyint               NULL,
6>    royaltyper     int                   NULL
7> )
8> GO
1>
2> insert titleauthor values('1', '2', 1, 60)
3> insert titleauthor values('2', '3', 1, 100)
4> insert titleauthor values('3', '4', 1, 100)
5> insert titleauthor values('4', '5', 1, 100)
6> insert titleauthor values('5', '6', 1, 100)
7> insert titleauthor values('6', '7', 2, 40)
8> insert titleauthor values('7', '8', 1, 100)
9> insert titleauthor values('8', '9', 1, 100)
10> GO

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)
1>
2>
3> CREATE TABLE authors(
4>    au_id          varchar(11),
5>    au_lname       varchar(40)       NOT NULL,
6>    au_fname       varchar(20)       NOT NULL,
7>    phone          char(12)          NOT NULL DEFAULT ('UNKNOWN'),
8>    address        varchar(40)           NULL,
9>    city           varchar(20)           NULL,
10>    state          char(2)               NULL,
11>    zip            char(5)               NULL,
12>    contract       bit               NOT NULL
13> )
14> GO
1> insert authors values('1',  'Joe',   'Abra',   '111 111-1111', '6 St.', 'Berkeley',  'CA', '11111', 1)
2> insert authors values('2',  'Jack',  'Majo',   '222 222-2222', '3 St.', 'Oakland' ,  'CA', '22222', 1)
3> insert authors values('3',  'Pink',  'Cherry', '333 333-3333', '5 Ln.', 'Vancouver', 'BC', '33333', 1)
4> insert authors values('4',  'Blue',  'Albert', '444 444-4444', '7 Av.', 'Vancouver', 'BC', '44444', 1)
5> insert authors values('5',  'Red',   'Anne',   '555 555-5555', '6 Av.', 'Regina',    'SK', '55555', 1)
6> insert authors values('6',  'Black', 'Michel', '666 666-6666', '3 Pl.', 'Regina',    'SK', '66666', 1)
7> insert authors values('7',  'White', 'Sylvia', '777 777-7777', '1 Pl.', 'Rockville', 'MD', '77777', 1)
8> insert authors values('8',  'Yellow','Heather','888 888-8888', '3 Pu',  'Vacaville', 'CA', '88888', 0)
9> insert authors values('9',  'Gold',  'Dep',    '999 999-9999', '5 Av.', 'Oakland',   'CA', '99999', 0)
10> insert authors values('10', 'Siler', 'Dean',   '000 000-0000', '4 Av.', 'Oakland',   'CA', '00000', 1)
11> GO

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)
1>
2>      SELECT    au_lname, title
3>      FROM      authors CROSS JOIN titles
4> GO
au_lname                                 title
---------------------------------------- --------------------------------------------------------------------------------
Joe                                      Secrets
Jack                                     Secrets
Pink                                     Secrets
Blue                                     Secrets
Red                                      Secrets
Black                                    Secrets
White                                    Secrets
Yellow                                   Secrets
Gold                                     Secrets
Siler                                    Secrets
Joe                                      The
Jack                                     The
Pink                                     The
Blue                                     The
Red                                      The
Black                                    The
White                                    The
Yellow                                   The
Gold                                     The
Siler                                    The
Joe                                      Emotional
Jack                                     Emotional
Pink                                     Emotional
Blue                                     Emotional
Red                                      Emotional
Black                                    Emotional
White                                    Emotional
Yellow                                   Emotional
Gold                                     Emotional
Siler                                    Emotional
Joe                                      Prolonged
Jack                                     Prolonged
Pink                                     Prolonged
Blue                                     Prolonged
Red                                      Prolonged
Black                                    Prolonged
White                                    Prolonged
Yellow                                   Prolonged
Gold                                     Prolonged
Siler                                    Prolonged
Joe                                      With
Jack                                     With
Pink                                     With
Blue                                     With
Red                                      With
Black                                    With
White                                    With
Yellow                                   With
Gold                                     With
Siler                                    With
Joe                                      Valley
Jack                                     Valley
Pink                                     Valley
Blue                                     Valley
Red                                      Valley
Black                                    Valley
White                                    Valley
Yellow                                   Valley
Gold                                     Valley
Siler                                    Valley
Joe                                      Any?
Jack                                     Any?
Pink                                     Any?
Blue                                     Any?
Red                                      Any?
Black                                    Any?
White                                    Any?
Yellow                                   Any?
Gold                                     Any?
Siler                                    Any?
Joe                                      Fifty
Jack                                     Fifty
Pink                                     Fifty
Blue                                     Fifty
Red                                      Fifty
Black                                    Fifty
White                                    Fifty
Yellow                                   Fifty
Gold                                     Fifty
Siler                                    Fifty

(80 rows affected)
1>
2> drop table authors;
3> drop table titleauthor;
4> drop table titles;
5> GO








4.2.Cross Join
4.2.1.SQL-92 Cross Join Syntax
4.2.2.Cross Join with itself
4.2.3.Matching Couples Using a Cross Join; Couples with Different Genders
4.2.4.it is the Cartesian product of all the rows from all tables participating in the SELECT statement