加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.zhandada.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

mysql内连接 外连接速度_关于MySQL的内连接,外连接的总结

发布时间:2022-10-18 13:31:09 所属栏目:MsSql教程 来源:网络
导读: 首先创建两个数据库表,用户表u,账户表a
先看一下数据库表:
u表:

a表:

1. 内连接。
关键字:innerjoin
SQL语句: select u.*,a.ID as aid,a.money from u INNER JOIN a ON u.id=a.ui

首先创建两个数据库表,用户表u,账户表a

先看一下数据库表:

u表:

485c8429094d2225b3017ebccbce0282.png

a表:

fac283f85ad23151a82b62f13c6e48cc.png

1. 内连接。

关键字:innerjoin

SQL语句: select u.*,a.ID as aid,a.money from u INNER JOIN a ON u.id=a.uid;

结果:

a8a3b336b3281850973a55f3dcdf7c46.png

*只输出匹配的数据,即u表id与a表uid相同的数据,相当于 “select u.*,a.ID as aid,a.money from u,a where u.id=a.uid;”,结果是一样的。

2.外连接。左向外连接、右向外连接

(1)左向外连接(左连接)

关键字: LEFTJOIN或LEFTOUTERJOIN

SQL语句:select u.*,a.ID as aid,a.money from u LEFT JOIN a ON u.id=a.uid;

结果:

dd157d1aedb0e762cc62c03670988cd3.png

*左向外连接的结果集包括LEFTOUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果u表的某行在a表中没有匹配行,则在相关联的结果集行中a表的所有选择列表列均为空值。(为了理解这里给出结果一样的右连接查询:“select u.*,a.ID as aid,a.money from a RIGHT JOIN u ON u.id=a.uid;”)

(2)右向外连接(右连接)

关键字:RIGHTJOIN或RIGHTOUTERJOIN

SQL语句: select u.*,a.ID as aid,a.money from u RIGHT JOIN a ON u.id=a.uid;;

结果:

1caf8146abd80123dac94a69a63b7ddb.png

*右向外联接是左向外联接的反向联接。将返回b表的所有行,如果b表的某行在左表中没有匹配行,则将为a表返回空值。

总结:

内连接,左连接,右连接的区别是什么?

①内连接关键字:innerjoin;

②左连接:leftjoin;

③右连接:rightjoin。

内连接是把匹配的关联数据显示出来;左连接是左边的表全部显示出来mssql 右连接,右边的表显示出符合条件的数据;右连接正好相反。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!