关于SQL语句外连接中的过滤条件
来源:互联网 发布:scada系统数据分析 编辑:程序博客网 时间:2024/05/24 03:20
使用左外连接时,注意以下两点
- 第一张表的过滤条件写在where子句中
- 其余各张表的过滤条件写在on子句中
假设有以下两张表
A表
两张表的id字段都是主键,B表的aid字段为指向A表的外键。
两张表中的active字段表示当前记录是否还有效。active=0表示该记录已经被逻辑删除。
现在要求使用左连接结合A表和B表,但是必须过滤掉各自表中已经被逻辑删除(即active=0)的记录。
要求的结果
错误的SQL 1
select A.*, B.*
from A left join B
on A.id = B.aid and A.active=1 and B.active=1
错误的SQL 2
select A.*, B.*
from A left join B
on A.id = B.aid
where A.active=1 and B.active=1
正确的SQL 1
select A.*, B.*
from A left join B
on A.id = B.aid and B.active=1
where A.active=1
正确的SQL 2
select A.*, B.*
from A left join B
on A.id = B.aid
where A.active=1
and (B.id is null or B.active=1)
正确的SQL 3
select A.*, B.*
from (select * from A where A.active=1) A
left join (select * from B where B.active=1) B
on A.id = B.aid
0 0
- 关于SQL语句外连接中的过滤条件
- SQL有外连接的时候注意过滤条件位置
- SQL有外连接的时候注意过滤条件位置
- 通过sql语句给F7过滤条件
- SQL语句学习,外连接与条件配合使用 (转载)
- SQL语句学习,外连接与条件配合使用
- SQL语句中的连接语句
- 多条件组合查询,sql语句连接
- 关于sql连接语句中的Integrated Security=SSPI
- 关于sql连接语句中的Integrated Security=SSPI
- 关于sql语句中的连接(join)关键字
- 关于sql连接语句中的Integrated Security=SSPI
- sql语句中过滤条件where和having的区别
- 关于多条件查询的SQL语句
- SQL查询语句中的条件判断CASE
- sql语句中的条件控制 case ..when.
- Oracle [PL/SQL]中的条件语句
- sql语句中的条件控制 case ..when
- Native Exception产生
- Android上传库到自由仓库Nexus
- 我的粉丝备忘
- 二分图 匈牙利算法详解
- codeforces contest750 New Year and Fireworks
- 关于SQL语句外连接中的过滤条件
- Hexo接入网易云评论
- Linux 权限机制
- 基于proteus的51单片机仿真实例十一、51单片机的P0口控制实例--流水灯
- 这里记录我以后的反馈
- 【Spring】IOC容器
- python简单知识点学习1
- 网页侧边栏三级菜单+面包屑导航栏
- 1042. 字符统计