SQL左连接
来源:RONE     阅读:516
芳年居
发布于 2018-12-06 22:45
查看主页

今天分享一下开发中何时运用左连接进行关联查询(大牛请忽视~)。

废话不多说,直接上表结构。只有两张表作为例子,Person表为人员信息,Types为人员类型辅助表,没有定义外键关联。

记住这句话——运用左连接时一定有一张表为主表,另一张表为辅表

SQL左连接

图1.Person表

SQL左连接

图2.类型表

现在我们要对两张表进行关联查询,查询出每个人员类型的形容信息

SQL左连接

图3.两张表进行关联查询

从查询结果我们看的出Adam没有显示出来,起因很简单由于Adam的type为 B ,而 B 在Types表中并不存在。在实际开发中往往都是这种情况,不论你关联了什么辅表,所有的人员都应该被查询出来,由于Person表为主表!(当然这是看业务需求,并不绝对)

So,现在我们就应该用左连接进行查询出所有人员的信息。

SQL左连接

图3.进行左连接查询

结果可以满足我们的要求——显示主表的所有数据。

拓展:

在Oracle中,有另一种简单的写法见下图

SQL左连接

图4.Oracle左连接简便写法

Oracle语法定义为,所有的表都放在from后边,where条件里进行关联,所有主表要关联的字段都放在 = 左边,所有辅表所关联的字段都放在 = 右边(+)

但是前些天写了简便的左连接,被我的开发leader军训了,由于关联了13张表,导致条件太多,维护起来特别麻烦!所以呢这里给大家一个建议,Oracle查询中2、3张表进行左连接可以用简便的写法,假如关联的表太多的话墙裂不推荐使用左连接!

SQL左连接

图5.简写左连接被训案例

最后,进行多表关联是,表的别名也要起的规范点,让人一眼就知道对应的哪张表,这样会减轻后人维护所需的成本。

今天就到这里了,下次整理些Oracle常用且好用的函数~~~~。

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
微信小程序敏捷开发实战
干货来袭|初识C语言
任意组合判断还在用Switch?位运算符理解一下~
JVM了解(上):classloader加载class文件的原理和机制
你真的懂Promise吗
首页
搜索
订单
购物车
我的