首页  ·  知识 ·  数据库
数据库查询语句的左右连接和内连接
伍咖  收集  MS-SQL  编辑:Jessie   图片来源:网络
一般所说的左连接,外连接是指左外连接,右外连接。1、先说左外连接和右外连接:先来查看一下我们要测试的两个表的数据:

一般所说的左连接,外连接是指左外连接,右外连接。

1、先说左外连接和右外连接:

先来查看一下我们要测试的两个表的数据:

select * from t1;

idname
1aaa
2bbb


select * from t2;


idage
130



对于左外联接:

SQL LEFT JOIN 关键字

SELECT column_name(s)

FROM table_name1

LEFT JOIN table_name2

ONtable_name1.column_name=table_name2.column_name

注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。

select t1.id,t1.`name`,t2.id,t2.age from t1LEFT JOIN t2 ON t1.id= t2.id;


idnameid1age
1aaa120
2bbbnullnull



对于右外连接:

语法:


SELECT column_name(s)FROM table_name1RIGHT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name


注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。 


select t1.id,t1.`name`,t2.id,t2.age from t1RIGHT JOIN t2 ON t1.id= t2.id;


idnameid1age
1aaa120
nullnull330


从上面的显示你可以看出:左外连接是以左边的表为基准。通俗的讲,先将左边的表全部显示出来,然后右边的表id与左边表id相同的记录就“拼接”上去,比如说id为1的记录。如果没有匹配的id,比如说t1中id为2的t2中就没有。那边就以null显示。

右外连接过程正好相反。

2、再看内连接:

语法:


SELECT column_name(s)FROM table_name1INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name


注释:INNER JOIN 与 JOIN 是相同的。

select * from t1 inner join t2 ont1.id=t2.id;



idnameid1age
1aaa120


看到没有?  只有一条记录。内连接就是只取出符合过滤条件的记录 也就是t1.id=t2.id  那么符合t1.id=t2.id的记录只有id=1这一条,所以只显示一条。 不像外连接,是将你作为基准的表(左外连接就是左边表为基准,右外连接就是右边表为基准)的所有行都显示出来。


本文作者:伍咖 来源:网络收集
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读