最近在审核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表连接关联查询 】相关推荐

  1. mysql 不通过关联查询表_mysql中多表不关联查询的实现方法详解

    下面小编就为大家带来一篇浅谈mysql中多表不关联查询的实现方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 大家在使用MySQL查询时正常是直接一个表的查询,要不然 ...

  2. Day4-Mybatis框架(多表的关联查询)

    Day4-Mybatis框架(多表的关联查询) 关联查询 使用背景:项目中可能不止一个表的时候 即多表的时候(表间关系可分为一对一,一对多,多对多) 这时候查询会涉及到来自多个表的操作. 简单的入门代 ...

  3. Mybatis-plus:单表使用关联查询+ResultMap结果映射

    Mybatis-plus:单表使用关联查询+ResultMap结果映射 一:数据表与实体类 二:mapper与mapper.xml 三:service 四:控制器 五:返回结果 一:数据表与实体类 数 ...

  4. Hibernate实现对多个表进行关联查询

    Hibernate实现对多个表进行关联查询? String sTest = "from tBookInfo book, BookSelection sel where book.id = s ...

  5. SQL 经典回顾:JOIN 表连接操作不完全指南

    也许最强大的SQL功能是JOIN操作.这让所有非关系数据库羡慕不已,因为当你想"合并"两个数据集时,这个概念是如此简单,并且又普遍适用. 简单地说,连接两个表,就是将一个表中的每一 ...

  6. MySQL的7种JOIN表连接结果集,你了解几个?搞懂仅需1张图

    目录 实践 第一种 第二种 第三种 第四种 第五种 第六种 第七种 大家好呀!我是爷爷的茶七里香,周末啦~开森~,今天突然想起曾经面试遇到的MySQL题目,记录下来方便查阅!!!  MySQL的7种表 ...

  7. Spring Data JPA实现多表的关联查询

    1.Spring Data JPA关系映射 对象关系映射(Object relational mapping)是指通过将对象状态映射到数据库列,来开发和维护对象和关系数据库之间的关系.它能够轻松处理( ...

  8. mySQL学习记录(局域网连接/基础查询/条件查询/常见函数/窗口函数/表连接/子查询/插修删建表)

    一些基础概念 DB 数据库 存储数据的容器 DBMS 数据库管理系统 又称数据库软件.产品如mysql/oracle/db2/sqlserver SQL 结构化查询语言 是所有的DBMS都使用的一种D ...

  9. Oracle/MySQL数据库的表间关联查询_多表关联查询的SQL语句详解

    文章目录 内连接 inner join 示例 外连接 outer join left outer join 左外连接 示例 right outer join 右外连接 示例 full outer jo ...

最新文章

  1. STL中基本容器有: string、vector、list、deque、set、map
  2. SOJ 8064 Whack the Groundhog
  3. 关于python语言和人工智能哪个说法不正确_在 Windows 7 操作系统中,下列说法错误的是( )。_计算机文化基础答案_学小易找答案...
  4. 杭十四计算机教室,杭十四中学生做了个图书馆智能机器人
  5. 手机驱动开发_新加坡科学家开发由智能手机驱动的无电池“智能服装”
  6. 解读mysql日志_全方位解读 MySQL 日志实现内幕(四)
  7. 通过CrawlSpider对招聘网站进行整站爬取(拉勾网实战)
  8. Python安装与库导入
  9. Hibernate中的一对一映射
  10. qnap自带有mysql吗_关于威联通QNAP NAS应用—Container Station 容器套件
  11. Mybatis入门教程
  12. python--超市水果销售系统2.0
  13. 了解一下银行科技信息岗
  14. 如何使用SpanReporter接口生成链路数据
  15. Verilog自学:关于门级,数据流级,行为级建模
  16. 如何生成EAN13流水号条形码
  17. html中加粗的字体如何改细,css font-weight 属性设置文本字体的粗细
  18. 将png转为webp_如何将Google的WEBP图像另存为JPEG或PNG
  19. Linux I2C 设备注册
  20. Commons-Collections3 , Commons-Collections4反序列化 从0开始手写exp

热门文章

  1. NSArray和NSString的联合使用
  2. jquery之bind(),live(),delegate()
  3. 重拾Javascript(四) 运动 图片的淡入淡出
  4. 【转】经典SQL语句大全
  5. idea插件sonar安装使用教程
  6. SpringBoot集成Maven工程
  7. null对象访问static属性或方法
  8. JavaScript——原型/原型链中的顶层对象(图解)
  9. 排序 -> 快速排序
  10. laravel 集成采集_Laravel 使用 QueryList 轻松采集网页