百度恶意屏蔽网站,外贸免费建设网站制作,视频链接提取下载,WordPress增加下载按钮left join#xff0c; right join 和inner join#xff1a;这些都是SQL中用来连接两个或多个表的操作。 union#xff0c;union all#xff1a;用于合并两个或多个 SELECT 语句的结果。 但是有时候#xff0c;对于Select出来的结果集不是很清楚。
假设我们有两张表。pers…left join right join 和inner join这些都是SQL中用来连接两个或多个表的操作。 unionunion all用于合并两个或多个 SELECT 语句的结果。 但是有时候对于Select出来的结果集不是很清楚。
假设我们有两张表。person表是左边的表。address是右边的表。我们分别用inner joinleft join和right join去验证select的结果集到底有什么区别。 1.inner join也称内连接我们写出来的sql如下
select * from test.person p inner join test.address a on a.personID p.personId 这条sql的查询结果是 由此可见返回的结果行是连接条件为真的行。如果连接条件没有匹配行那么返回的结果就会是空的。 2.left join也称左连接给定下面sql语句
select * from test.person p left join test.address a on a.personID p.personId 这条sql的查询结果是 可以从结果中看到返回了person表中所有的行以及address表匹配的行如果address表中没有匹配的行则返回NULL。可以总结为select结果集是返回左边表中的所有行以及与右边表匹配的行如果右边表中没有匹配的行则返回NULL。
3.right join也称右连接顾名思义用法与左连接是相似的。依旧给定语句
select * from test.person p right join test.address a on a.personID p.personId 这条sql的查询结果是 可以从结果中看到返回了address表中所有的行以及person表匹配的行如果person表中没有匹配的行则返回NULL。可以总结为select结果集是返回右边表中的所有行以及与左边表匹配的行如果左边表中没有匹配的行则返回NULL。
4.union和union all 与上面三个不同的是union和 union all内部的 select语句必须拥有相同数量的列并且列的顺序必须相同同时列也必须拥有相似的数据类型。 比如给定以下两条sql
select personID from test.personselect personID from test.address使用union时的结果如下
select personID from test.person
union
select personID from test.address使用union all时的结果如下
select personID from test.person
union all
select personID from test.address 由此可见union是选取不同值返回。union all是返回所有的值。