首页
学习
活动
专区
工具
TVP
发布

SQL 中的 用法

今天在代码review的时候,发现sql中很多 (+)的写法,看得头晕,记录下。对于sql逻辑比较复杂的场景不推荐是有 (+),容易自己晕掉。

Oracle sql 中 (+)号可以理解为补充的意思,即哪个表有加号,这个表就是匹配表。加在右表的列上代表右表为补充,为左外连接。加在左表的列上代表左表为补充,为右外连接。

注:完全外连接不支持(+)写法;在MySQL中不能作为左右连接标识。

举例:

select * from t_emp_info e, t_oragan_info g where e.organ_code = g.organ_code(+)

解释:e.organ_code = g.organ_code(+)表示t_oragan_info是补充匹配表,即t_oragan_info表中不存在匹配的记录,在t_emp_info表也查询出来,相当于左连接(left join)。

注意事项:

(+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。

当使用(+)操作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含(+)操作符。

(+)操作符只适用于列,而不能用在表达式上。

(+)操作符不能与or和in操作符一起使用。

(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191227A0JVOS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券