700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 超详细mysql left join right join inner join用法分析

超详细mysql left join right join inner join用法分析

时间:2024-05-08 13:38:04

相关推荐

超详细mysql left join right join inner join用法分析

小编精心整理的超详细mysql left join,right join,inner join用法分析希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

下面是例子分析

表A记录如下:

aID aNum

1 a0111

2 a0112

3 a0113

4 a0114

5 a0115

表B记录如下:

bID bName

1 032401

2 032402

3 032403

4 032404

8 032408

创建这两个表SQL语句如下:

CREATE TABLE a

aID int( 1 ) AUTO_INCREMENT PRIMARY KEY ,

aNum char( 20 )

)

CREATE TABLE b(

bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,

bName char( 20 )

)

INSERT INTO a

VALUES ( 1, a0111 ) , ( 2, a0112 ) , ( 3, a0113 ) , ( 4, a0114 ) , ( 5, a0115 ) ;

INSERT INTO b

VALUES ( 1, 032401 ) , ( 2, 32402 ) , ( 3, 32403 ) , ( 4, 32404 ) , ( 8, 32408 ) ;

实验如下:

join(左联接)

sql语句如下:

SELECT * FROM a

LEFT JOIN b

ON a.aID =b.bID

结果如下:

aID aNum bID bName

1 a0111 1032401

2 a0112 2 032402

3 a0113 3 032403

4 a0114 4 032404

5 a0115 NULL NULL

(所影响的行数为 5 行)

结果说明:

left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.

换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).

B表记录不足的地方均为NULL.

join(右联接)

sql语句如下:

SELECT * FROM a

RIGHT JOING b

ON a.aID = b.bID

结果如下:

aID aNum bID bName

1 a0111 1032401

2 a0112 2 032402

3 a0113 3 032403

4 a0114 4 032404

NULL NULL 8 032408

(所影响的行数为 5 行)

结果说明:

仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

join(相等联接或内联接)

sql语句如下:

SELECT * FROM a

INNER JOIN b

ON a.aID =b.bID

等同于以下SQL句:

SELECT *

FROM a,b

WHERE a.aID = b.bID

结果如下:

aID aNum bID bName

1 a0111 1032401

2 a0112 2 032402

3 a0113 3 032403

4 a0114 4 032404

结果说明:

很明显,这里只显示出了 A.aID = 的记录这说明 join并不以谁为基础,它只显示符合条件的记录.

LEFT JOIN操作用于在任何的 FROM 子句中,

组合

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。