25.MySQL中的交叉連接CROSS JOIN

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( gid

INT

(

4

) PRIMARY

KEY

, gname

VARCHAR

(

36

), tehcher

VARCHAR

(

36

) )

ENGINE

=

INNODB

DEFAULT

CHARSET

= utf8;

INSERT

INTO

grade

VALUES

(

1

,

'一班'

,

'一班老師'

);

INSERT

INTO

grade

VALUES

(

2

,

'二班'

,

'二班老師'

);

INSERT

INTO

grade

VALUES

(

3

,

'三班'

,

'三班老師'

);

INSERT

INTO

grade

VALUES

(

4

,

'四班'

,

'四班老師'

);

CREATE

TABLE

student(

sid

INT

(

4

) PRIMARY

KEY

, sname

VARCHAR

(

36

), sex

VARCHAR

(

10

), score

FLOAT

, height

FLOAT

)

ENGINE

=

INNODB

DEFAULT

CHARSET

= utf8;

INSERT

INTO

student

VALUES

(

1

,

'a1'

,

'男'

,

95.6

,

172.5

);

INSERT

INTO

student

VALUES

(

2

,

'a2'

,

'女'

,

84.6

,

172.5

);

INSERT

INTO

student

VALUES

(

3

,

'a3'

,

'男'

,

94.6

,

172.5

);

INSERT

INTO

student

VALUES

(

4

,

'a4'

,

'女'

,

95.6

,

172.5

);

INSERT

INTO

student

VALUES

(

5

,

'a5'

,

'男'

,

55.6

,

172.5

);

INSERT

INTO

student

VALUES

(

6

,

'a6'

,

'女'

,

25.6

,

172.5

);

INSERT

INTO

student

VALUES

(

7

,

'a7'

,

'男'

,

35.6

,

172.5

);

INSERT

INTO

student

VALUES

(

8

,

'a8'

,

'女'

,

89.6

,

172.5

);

INSERT

INTO

student

VALUES

(

9

,

'a9'

,

'男'

,

95.6

,

172.5

);

INSERT

INTO

student

VALUES

(

10

,

'a10'

,

'男'

,

95.6

,

172.5

);/<code>

3.案例

<code>

SELECT

*

FROM

grade

CROSS

JOIN

student;/<code>


分享到:


相關文章: