1.簡介
交叉連接返回的結果是被連接的兩個表中所有數據行的笛卡爾積。需要注意的是,交叉連接產生的結果是笛卡爾積,並沒有實際應用的意義。
例如,班級表中有3個字段,4條記錄,學生表中有5個字段,10條記錄,那麼交叉連接後的笛卡爾積就等於4*10條記錄數,每條記錄中含有3+5個字段。
語法
<code>SELECT
查詢字段FROM
表1
CROSS
JOIN
表2
;/<code>
CROSS JOIN用於連接兩個要查詢的表。
2.準備
<code>CREATE
DATABASE
mahaiwuji;USE
mahaiwuji;CREATE
TABLE
grade( gidINT
(4
) PRIMARYKEY
, gnameVARCHAR
(36
), tehcherVARCHAR
(36
) )ENGINE
=INNODB
DEFAULT
CHARSET
= utf8;INSERT
INTO
gradeVALUES
(1
,'一班'
,'一班老師'
);INSERT
INTO
gradeVALUES
(2
,'二班'
,'二班老師'
);INSERT
INTO
gradeVALUES
(3
,'三班'
,'三班老師'
);INSERT
INTO
gradeVALUES
(4
,'四班'
,'四班老師'
);CREATE
TABLE
student(sid
INT
(4
) PRIMARYKEY
, snameVARCHAR
(36
), sexVARCHAR
(10
), scoreFLOAT
, heightFLOAT
)ENGINE
=INNODB
DEFAULT
CHARSET
= utf8;INSERT
INTO
studentVALUES
(1
,'a1'
,'男'
,95.6
,172.5
);INSERT
INTO
studentVALUES
(2
,'a2'
,'女'
,84.6
,172.5
);INSERT
INTO
studentVALUES
(3
,'a3'
,'男'
,94.6
,172.5
);INSERT
INTO
studentVALUES
(4
,'a4'
,'女'
,95.6
,172.5
);INSERT
INTO
studentVALUES
(5
,'a5'
,'男'
,55.6
,172.5
);INSERT
INTO
studentVALUES
(6
,'a6'
,'女'
,25.6
,172.5
);INSERT
INTO
studentVALUES
(7
,'a7'
,'男'
,35.6
,172.5
);INSERT
INTO
studentVALUES
(8
,'a8'
,'女'
,89.6
,172.5
);INSERT
INTO
studentVALUES
(9
,'a9'
,'男'
,95.6
,172.5
);INSERT
INTO
studentVALUES
(10
,'a10'
,'男'
,95.6
,172.5
);/<code>
3.案例
<code>SELECT
*FROM
gradeCROSS
JOIN
student;/<code>