mysql数据库的左连接、右连接和内连接的区别详解
程序员文章站
2022-05-30 14:33:39
mysql的左连接、右连接和内连接的区别详解
一般所说的左连接,外连接是指左外连接,右外连接。做个简单的测试你看吧。
先说左外连接和右外连接:
[test1@orcl#16-12月-11]...
mysql的左连接、右连接和内连接的区别详解
一般所说的左连接,外连接是指左外连接,右外连接。做个简单的测试你看吧。 先说左外连接和右外连接: [test1@orcl#16-12月-11] sql>select * from t1; id name ---------- -------------------- 1 aaa 2 bbb [test1@orcl#16-12月-11] sql>select * from t2; id age ---------- ---------- 1 20 3 30 左外连接: [test1@orcl#16-12月-11] sql>select * from t1 left join t2 on t1.id=t2.id; id name id age ---------- -------------------- ---------- ---------- 1 aaa 1 20 2 bbb 右外连接: [test1@orcl#16-12月-11] sql>select * from t1 right join t2 on t1.id=t2.id; id name id age ---------- -------------------- ---------- ---------- 1 aaa 1 20 3 30 从上面的显示你可以看出:左外连接是以左边的表为基准。通俗的讲,先将左边的表全部显示出来,然后右边的表id与左边表id相同的记录就“拼接”上去,比如说id为1的记录。如果没有匹配的id,比如说t1中id为2的t2中就没有。那边就以null显示。 右外连接过程正好相反。 再看内连接: [test1@orcl#16-12月-11] sql>select * from t1 inner join t2 on t1.id=t2.id; id name id age ---------- -------------------- ---------- ---------- 1 aaa 1 20
看到没有? 只有一条记录。内连接就是只取出符合过滤条件的记录 也就是t1.id=t2.id 那么符合t1.id=t2.id的记录只有id=1这一条,所以只显示一条。 不像外连接,是将你作为基准的表(左外连接就是左边表为基准,右外连接就是右边表为基准)的所有行都显示出来。
推荐阅读
-
LINQ的左连接、右连接、内连接
-
关于Sequelize连接查询时inlude中model和association的区别详解
-
mysql数据库的左连接、右连接和内连接的区别详解
-
清晰讲解SQL语句中的内连接,通用于Mysql和Oracle,全是干货哦
-
python中连接三大主流数据库mysql,mongodb和redis的操作教程
-
详解Python连接MySQL数据库的多种方式
-
数据库中的左连接(left join)和右连接(right join)区别
-
sql 左连接和右连接的使用技巧(left join and right join)
-
SQL的四种连接-左外连接、右外连接、内连接、全连接
-
Python-Web框架之 - 利用SQLALchemy创建与数据库MySQL的连接, 详解用Flask时会遇到的一些大坑 !