百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql多表结合查询
分享文章到:

mysql多表结合查询

发布时间:08/01 来源:未知 浏览: 关键词:
内连贯INNERJOIN在MySQL中把INNERJOIN叫做等值连贯,即需要指定等值连贯前提在MySQL中CROSS和INNERJOIN被划分在一起。 本篇文章是多表结合查询的介绍,但愿对大家起到参照 的作用。

举荐课程:MySQL教程。

例子:

user表:
id | name
———
1 | libk
2 | zyfon
3 | daodao
user_action表:
user_id | action
—————
1 | jump
1 | kick
1 | jump
2 | run
4 | swim

sql语句:

select id, name, action from user as uleft join user_action a on u.id = a.user_id

效果:

id | name   | action
——————————–
1  | libk  | jump     效果1      
1  | libk  | kick     效果2        
1  | libk  | jump     效果3       
2  | zyfon  | run      效果4          
3  | daodao | null     效果5         
---------------------

剖析:

注意到user_action中还有一个user_id=4, action=swim的纪录,但是没有在效果中涌现,

而user表中的id=3, name=daodao的会员在user_action中没有响应的纪录,但是却涌现在了效果集中

由于此刻是left join,所有的工作以left为准.

效果1,2,3,4都是既在左表又在右表的纪录,5是只在左表,不在右表的纪录

工作道理:

从左表读出一条,选出所有与on匹配的右表纪录(n条)进行连贯,构成n条纪录(包含反复的行,如:效果1和效果3),要是右侧没有与on前提匹配的表,那连贯的字段都是null.然后继续读下一条。

引申:

我们可以用右表没有on匹配则显示null的纪律, 来寻出所有在左表,不在右表的纪录, 注意用来推断的那列必需声明为not null的。

如:

select id, name, action from user as uleft join user_action a on u.id = a.user_idwhere a.user_id is NULL

(注意:1.列值为null应当用is null 而不克不及用=NULL

2.这里a.user_id 列必需声明为 NOT NULL 的.)

上面sql的result:

id | name | action
————————–
3 | daodao | NULL

以上就是mysql多表结合查询的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板