当前位置:网站首页>在Mysql的 left/right join 添加where条件
在Mysql的 left/right join 添加where条件
2022-08-08 06:23:00 【永远的攀登者】
1.如何在mysql中使用left/right join 添加where条件?相信很多人不知道怎么做,下面我来告诉大家如何添加where条件。
1.1有A和B两张表,一个A对应多个B,现在查询有效的A对应的B,两个表都有状态status字段
我们通常会这样写如下:
SELECT a.*,b.* FROM A a LEFT JOIN B b ON a.id=b.id And a.status=1 AND b.status=1
或
SELECT a.*,b.* FROM A a LEFT JOIN B b ON a.id=b.id WHERE a.status=1 AND b.status=1第一种写法主表的a.status=1条件不生效。
第二种写法可能会导致一条数据都查不出来。
知识点如下:
- 多表左连接和右连接会生成一张临时表,
- where 条件是针对最后的临时表进行过滤的
- on条件是针对非主表进行过滤的
正确的写法如下:
SELECT a.*,b.* FROM A a LEFT JOIN B b ON a.id=b.id and b.status=1 WHERE a.status=1
结论:
1.对左表的条件要添加在where 后面,不能放在on后面,因为左表属于主表
2.对右表添加条件是放在ON后面,在where中添加可能会导致数据不正确,因为where是临时表的过滤。
边栏推荐
猜你喜欢

Distributed voltage regulation using permissioned blockchains and extended contract net protocol优化效率

爬取实习吧前四页的招聘信息

市场调研报告-食品添加剂行业产量为974万吨

YoloV4训练自己的数据集(四)

Scrapy_Redis 分布式处理

Four, TF2.0 tensor in mathematics

六.Redis 持久化之 RDB

CUDA10 installs a version of tensorflow that supports gpu

黑苹果安装

hyperledger-fabric documention官方文档
随机推荐
Variational Inference with Normalizing Flows变分推断
灯具分析:LED灯预计2028年将达到459亿美元
vim 快捷键大全和插件大全
2022年天然橡胶市场供需与价格走势
NULL和nullptr的区别
三、MATPLOTLIB数据可视化分析工具
Anaconda安装使用
四 、TF2.0中张量的数学运算
栈的实例应用
screen 命令修改默认快捷键ctrl + a
2021年度总结
聊一聊数据库中的锁
使用模板引擎时,Uncaught TemplateError报错原因小结
二、TF2 常见问题解决
cybox靶机wp
使用XGboost进行分类,判断该患者是否患有糖尿病
爬取实习吧前四页的招聘信息
节流与防抖
Market research report - the food additive industry output of 9.74 million tons
np.iinfo和 np.finfo的用法