1、使用union和union all合并两个查询结果:select 字段名 from tablename1 union select 字段名 from tablename2;


注意这个操作必须保证两张表字段相同,字段数据类型也相同。另外,使用union的时候会去除重复(相同)的记录,而union all则不会。

注:下边的几个连接查询涉及到笛卡尔积的概念,即如果存在两张表,第一张记录数为n条,另一张表的记录数为m条,那么笛卡尔积得出的记录数就是n*m条;如果第一张表的字段数为a个,另一张的字段数为b个,则笛卡尔积得出的字段数就是a+b个。

2、使用natural join自然连接:前提是两张表有相同的字段:(这个操作会去掉重复的字段)


对于这个查询,我的理解是:保留这两张表中关联字段(例如这里的depart_id)都存在的数据,去掉只有一个表中有的:


如上述内容中,company中有四条数据,而emp中有7条,结果不论哪个放前边都只出来六条,因为company中depart_id为4的,emp中没有,而emp中depart_id为5的,company中又没有。

3、inner join on等值连接查询:


这个操作在我理解,和上边的自然连接区别就在于没有去掉重复的字段,还有更加的灵活,不需要有相同字段名的字段:


4、inner join on不等值连接查询:


对于这个查询,我的理解就是,他是“=”查询的补集,即这个查询的结果集 = 笛卡尔积结果集  减去“=”查询的结果集;本例中,company有4条记录,emp有7条记录,笛卡尔积是4*7=28条记录;“=”查询的结果是6条记录,一次"!="查询就应该是其余的22条记录。

5、从上边的操作中可以拓展出另一种查询:字连接查询,即实际只有一张表,用重命名的方式当成两张来用:


可以看到,根据笛卡尔积,这里应该有4*4=16条结果,但是因为有了条件,就筛选出了四条。

最新文章

  1. 关于多字节、宽字节、WideCharToMultiByte和MultiByteToWideChar函数的详解
  2. SQL 循环语句 while 介绍 实例
  3. C语言初级进阶2
  4. 从数据库导出数为生成excel表
  5. [转] Android实时抓包分析 : 善用adb调试桥
  6. pthread 学习系列 case2-- pthread_mutex_t
  7. 11个让你吃惊的 Linux 终端命令
  8. 无需图片,使用CSS3实现圆角按钮[转]
  9. C++学习笔记:指向函数的指针
  10. python 零散记录(四) 强调字典中的键值唯一性 字典的一些常用方法
  11. 随时可以给doT模板传任何你想要的值
  12. 黑马程序员_static\访问权限\单例模式 大汇总
  13. Oracle单表的复杂查询
  14. android 开发中,经常遇到http://dl-ssl.google.com/ 无法访问的问题解决
  15. vuex学习
  16. node搭建简易的websocket服务
  17. c++ protected 访问限定
  18. zabbix3.0.4通过自定义shell脚本添加对关键日志文件的监控
  19. nodejs 解析excel文件
  20. 第一章:帝国的余晖 AT&T公司

热门文章

  1. 什么是NAS.什么是黑白群晖?(转)
  2. requestAnimationFrame的用法
  3. iOS-FMDB事务【批量更新数据】
  4. thinkphp使用自带webserver
  5. 2017年总结的前端文章——CSS盒模型详解
  6. ext4 关闭延迟分配
  7. Swing EDT引起的客户端卡死
  8. BZOJ 3781: 小B的询问 [莫队]
  9. BZOJ 3992: [SDOI2015]序列统计 [快速数论变换 生成函数 离散对数]
  10. 异步请求时有时会让js不起作用,那么重新加载js