0


数据库多表联查

多表联查分为两类:等值联查和非等值联查。

等值联查语法:select * from表1表2where 表1.字段=表2.字段(表1和表2必须存在主外键关系)** **

等值联查:可以分为内联查询和外联查询(左外联和右外联)

** (1)内联查询语法 (inner join) **

** select * from 主查表**** inner join ****表1 ****on **条件

** 不会保留主查表里面不符合的查询条件的数据**

** (2)外联查询语法 (inner join)**

** 1)左外联查询语法(left join)**

** **** select ***** from 主查表 left join 表1 ****on **条件

   从左表中返回所有的记录,即便在右表(表2)中没有匹配的行。如下图所示:left join 取得就是主表(左表)红色区域的数据 。

   取左表中独有的数据:on 的后面,根据条件进行过滤筛选,再生成临时查询结果。  where 的后面,从临时查询结果中再根据条件进行筛选,生成最终结果。

                     ![](https://img-blog.csdnimg.cn/9f57be2c877140c5b1fab25bc88e57d9.png)

** 2)右外联查询语法(right join)**

** **** select ***** ****from ****表1 right join 主查表 ****on **条件

与 left join 相对应,右边的表(表2)为主表,从右表中返回所有的记录,即便在左表(表1)中没有匹配的行。如下图

非等值联查:非等值联查实质是笛卡尔积的应用,即表1有n行,表2有m行,得到的结果就是n*m行。因此非等值查询在应对数据量较小的情况时可以选择,但当数据量庞大时,采用非等值查询方式会造成大量的数据,从而降低效率,因此不推荐使用非等值查询。

等值联查语法:select * from 表1,表2

标签: linq p2p sql

本文转载自: https://blog.csdn.net/weixin_53484385/article/details/124857253
版权归原作者 weixin_53484385 所有, 如有侵权,请联系我们删除。

“数据库多表联查”的评论:

还没有评论