开发经常犯的错误之→【join表连接关联查询 】
最近在审核SQL的时候,发现一些开发经常犯这个错误,下面我举个简单的例子,说明一下:
查找出A表和B表id相同的记录(并且把B表没有的id记录也查询出来),且name名字等于'b'的记录。
表数据:
mysql> select * from t1; +----+------+ | id | name | +----+------+ | 1 | a | | 2 | b | | 3 | c | | 4 | d | | 5 | e | | 6 | b | +----+------+ 6 rows in set (0.00 sec) mysql> select * from t2; +----+------+ | id | name | +----+------+ | 1 | a | | 2 | b | | 3 | cc | | 4 | e | | 5 | b | +----+------+ 5 rows in set (0.00 sec)
错误写法:
mysql> select * from t1 left join t2 on t1.id=t2.id and t1.name='b'; +----+------+------+------+ | id | name | id | name | +----+------+------+------+ | 2 | b | 2 | b | | 1 | a | NULL | NULL | | 3 | c | NULL | NULL | | 4 | d | NULL | NULL | | 5 | e | NULL | NULL | | 6 | b | NULL | NULL | +----+------+------+------+ 6 rows in set (0.00 sec)
正确写法:
mysql> select * from t1 left join t2 on t1.id=t2.id where t1.name='b'; +----+------+------+------+ | id | name | id | name | +----+------+------+------+ | 2 | b | 2 | b | | 6 | b | NULL | NULL | +----+------+------+------+ 2 rows in set (0.00 sec)
呵呵,可以当一道面试题了。
开发经常犯的错误之→【join表连接关联查询 】相关推荐
- mysql 不通过关联查询表_mysql中多表不关联查询的实现方法详解
下面小编就为大家带来一篇浅谈mysql中多表不关联查询的实现方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 大家在使用MySQL查询时正常是直接一个表的查询,要不然 ...
- Day4-Mybatis框架(多表的关联查询)
Day4-Mybatis框架(多表的关联查询) 关联查询 使用背景:项目中可能不止一个表的时候 即多表的时候(表间关系可分为一对一,一对多,多对多) 这时候查询会涉及到来自多个表的操作. 简单的入门代 ...
- Mybatis-plus:单表使用关联查询+ResultMap结果映射
Mybatis-plus:单表使用关联查询+ResultMap结果映射 一:数据表与实体类 二:mapper与mapper.xml 三:service 四:控制器 五:返回结果 一:数据表与实体类 数 ...
- Hibernate实现对多个表进行关联查询
Hibernate实现对多个表进行关联查询? String sTest = "from tBookInfo book, BookSelection sel where book.id = s ...
- SQL 经典回顾:JOIN 表连接操作不完全指南
也许最强大的SQL功能是JOIN操作.这让所有非关系数据库羡慕不已,因为当你想"合并"两个数据集时,这个概念是如此简单,并且又普遍适用. 简单地说,连接两个表,就是将一个表中的每一 ...
- MySQL的7种JOIN表连接结果集,你了解几个?搞懂仅需1张图
目录 实践 第一种 第二种 第三种 第四种 第五种 第六种 第七种 大家好呀!我是爷爷的茶七里香,周末啦~开森~,今天突然想起曾经面试遇到的MySQL题目,记录下来方便查阅!!! MySQL的7种表 ...
- Spring Data JPA实现多表的关联查询
1.Spring Data JPA关系映射 对象关系映射(Object relational mapping)是指通过将对象状态映射到数据库列,来开发和维护对象和关系数据库之间的关系.它能够轻松处理( ...
- mySQL学习记录(局域网连接/基础查询/条件查询/常见函数/窗口函数/表连接/子查询/插修删建表)
一些基础概念 DB 数据库 存储数据的容器 DBMS 数据库管理系统 又称数据库软件.产品如mysql/oracle/db2/sqlserver SQL 结构化查询语言 是所有的DBMS都使用的一种D ...
- Oracle/MySQL数据库的表间关联查询_多表关联查询的SQL语句详解
文章目录 内连接 inner join 示例 外连接 outer join left outer join 左外连接 示例 right outer join 右外连接 示例 full outer jo ...
最新文章
- STL中基本容器有: string、vector、list、deque、set、map
- SOJ 8064 Whack the Groundhog
- 关于python语言和人工智能哪个说法不正确_在 Windows 7 操作系统中,下列说法错误的是( )。_计算机文化基础答案_学小易找答案...
- 杭十四计算机教室,杭十四中学生做了个图书馆智能机器人
- 手机驱动开发_新加坡科学家开发由智能手机驱动的无电池“智能服装”
- 解读mysql日志_全方位解读 MySQL 日志实现内幕(四)
- 通过CrawlSpider对招聘网站进行整站爬取(拉勾网实战)
- Python安装与库导入
- Hibernate中的一对一映射
- qnap自带有mysql吗_关于威联通QNAP NAS应用—Container Station 容器套件
- Mybatis入门教程
- python--超市水果销售系统2.0
- 了解一下银行科技信息岗
- 如何使用SpanReporter接口生成链路数据
- Verilog自学:关于门级,数据流级,行为级建模
- 如何生成EAN13流水号条形码
- html中加粗的字体如何改细,css font-weight 属性设置文本字体的粗细
- 将png转为webp_如何将Google的WEBP图像另存为JPEG或PNG
- Linux I2C 设备注册
- Commons-Collections3 , Commons-Collections4反序列化 从0开始手写exp