什么是mysql左链接查询 如何使用

什么是mysql左链接查询 如何使用,第1张

一般所说的左连接,外连接是指左外连接,右外连接。做个简单的测试你看吧。
先说左外连接和右外连接:
[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 t1id=t2id;
ID NAME ID AGE
---------- -------------------- ---------- ----------
1 aaa 1 20
2 bbb
右外连接:
[TEST1@orcl#16-12月-11] SQL>select from t1 right join t2 on t1id=t2id;
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 t1id=t2id;
ID NAME ID AGE
---------- -------------------- ---------- ----------
1 aaa 1 20
看到没有? 只有一条记录。内连接就是只取出符合过滤条件的记录 也就是t1id=t2id 那么符合t1id=t2id的记录只有id=1这一条,所以只显示一条。 不像外连接,是将你作为基准的表(左外连接就是左边表为基准,右外连接就是右边表为基准)的所有行都显示出来。

从左第二个非空,公式可写为
=INDEX(24:24,SMALL(IF(DF24:DX24<>"",COLUMN(DF:DX)),2))
同时按下CTRL+SHIFT+回车,输入数组公式。
从右第二个非空,公式可写为
=INDEX(24:24,LARGE(IF(DF24:DX24<>"",COLUMN(DF:DX)),2))
同时按下CTRL+SHIFT+回车,输入数组公式。

SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段

LEFT JOIN(左连接) 返回包括左表中的所有记录和右表中联结字段相等的记录。
即使右表中没有匹配,也从左表返回所有的行。

RIGHT JOIN(右连接)返回包括右表中的所有记录和左表中联结字段相等的记录。
即使左表中没有匹配,也从右表返回所有的行。

示例表:表1和表2

1、LEFT JOIN 例:

注释:王五在表2中没有匹配的记录,所以表2的内容为NULL。

2、RIGHT JOIN例: 

注释:表2中所有记录被返回。

扩展资料:

sql语句中left join的效率问题

sql语句中包含数据处理函数(nvl,case when函数);inner joinleft join等关联;排序和分页。

1、首先把排序去掉,速度确实很快,但排序是必须的,这样做只是为了证明排序是很耗资源。2、将nvl,case when等函数去掉,结果速度几乎没有任何改变。
3、将inner join的表去除,速度稍微快了几十毫秒。
4、将left join的表去掉,速度从原来的4秒提高到1秒内。

综合所得,left join才是速度慢的元凶,于是将left join关联关系字段都加为索引,发现速度基本能保持在1秒左右。

结论:left join是相当耗资源的 *** 作,如果关联的字段没有索引的话,速度是很慢的,所以如果有left join的话,最好用索引字段取关联,或者给关联的字段加索引。

参考资料:

百度百科Left join

百度百科Right join

内连接、外连接、左连接、右连接分别是:

1、内连接:是一种最常用的连接类型。内连接查询实际上是一种任意条件的查询。使用内连接时,如果两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录,也就是在内连接查询中,只有满足条件的元组才能出现在结果关系中。

2、外连接分为三种:左外连接,右外连接,全外连接。会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。

3、左外连接:如果在连接查询中,连接管子左端的表中所有的元组都列出来,并且能在右端的表中找到匹配的元组,那么连接成功。如果在右端的表中,没能找到匹配的元组,那么对应的元组是空值(NULL)。

4、右外连接:与左外连接类似,只是右端表中的所有元组都列出,限制左端表的数据必须满足连接条件,而不管右端表中的数据是否满足连接条件,均输出表中的内容。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13344251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-18
下一篇 2023-07-18

发表评论

登录后才能评论

评论列表(0条)

保存