• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

详解mysql语法left join,right join,inner join_MySQL

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

gaodaima.com

详解mysql语法left join,right join,inner join

测试表用户表user:

测试表密码表pwd:

1、创建user表:

1

CREATE TABLE `user` (

2

`id` int(11) NOT NULL auto_increment,

3

`name` varchar(255) default NULL,

4

`password` varchar(255) default NULL,

5

PRIMARY KEY (`id`)

6

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、创建pwd表:

1

CREATE TABLE `pwd` (

2

`id` int(11) NOT NULL auto_increment,

3

`userid` int(11) default NULL,

4

`passwd` varchar(255) default NULL,

5

PRIMARY KEY (`id`)

6

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、使用inner join 将pwd表中的passwd填入到user表中的password列(根据userid),SQL语句:

1

UPDATE `user` U

2

INNER JOIN `pwd` P

3

ON P.userid=U.id

4

SET U.password = P.passwd;

4、 left join(左联接) 查询user中的信息

1

SELECT us.*,pw.* FROM `user` us

2

LEFT JOIN pwd pw

3

ON pw.userid=us.id;

结果:

说明:
left join是以User表的记录为基础的,User可以看成左表,pwd可以看成右表,left join是以左表为准的.
换句话说,左表(User)的记录将会全部表示出来,而右表(pwd)只会显示符合搜索条件的记录(例子中为: pw.userid=us.id).
B表记录不足的地方均为NULL.

5、left join(左联接) 查询pwd中的信息

1

SELECT us.*,pw.* FROM `user` us

2

RIGHT JOIN pwd pw

3

ON pw.userid=us.id;

结果:

说明:

和lef本文来源gaodai#ma#com搞@代~码^网+t join的结果刚好相反,这次是以右表(pwd)为基础的,user表不足的地方用NULL填充.

6、inner join(相等联接或内联接)

1

SELECT us.*,pw.* FROM `user` us

2

inner JOIN pwd pw

3

ON pw.userid=us.id;

结果:

说明:

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

gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详解mysql语法left join,right join,inner join_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址