连接查询:

当查询数据时,通过连接操作查询出存放在多个表中的不同数据,当两个或者多个表中存在相同意义的字段时,

便可以通过这些字段对不同的表进行连接查询。

自连接:

如果在一个连接查询中,涉及的两个表都是同一个表,这种查询称为自连接查询。自连接是一种特殊的内连接,

它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表。

例:下面是一张公司员工表,要求找出每个员工的上级,并显示员工名和上级名。



如图,name表示员工名,id表示员工编号,mac表示上级编号



此时,员工表和上级表在同一个表中,应该用到自连接,仔细观察可以发现字段id和字段mac有关联,

因此逻辑上可以把一张表看作两张表

emp a 员工表



emp b 上级表



sql语句



查询结果



可以发现员工名和上级名反了。

错误在哪呢?其实最后的等值条件错了,

两张表的关系为员工的上级编号=上级的员工编号

所以修改sql为



查询结果



查询正确

总结:关于自连接应该理解它是把一张表看作两张表关键在于找两张表的关系,只要能找到关系,就能够写出sql语句。

最新文章

  1. 按日子来干活——第一个Blog Day&Happy Day
  2. MVC中的一般权限管理
  3. angularjs与require的集成摘抄
  4. 从一个例子看现代C++的威力
  5. 将网站部署到windows2003 iis6之后,出现asp.net程序页面无法访问情况
  6. .net自定义控件
  7. firefox 不能显示 glyphicons 字体
  8. (转)javascript组件开发方式
  9. windbg vmware win7联机调试环境搭建
  10. 前端判断用户请求是PC还是移动端
  11. 配置eNSP和本地电脑上的网卡相连,从而直接从本地电脑连接设备
  12. MySql查询正在进行中的事务
  13. [HNOI 2003]消防局的设立
  14. CodeBlocks卸载后重装 编译c文件提示错误信息“No such file or directory”
  15. [leetcode] 5.Longest Palindromic Substring-1
  16. Vue学习之路7-v-on指令学习之简单事件绑定
  17. 使用Windows命令行启动关闭服务(net,sc用法)
  18. 008_falcon磁盘io计算方法
  19. 通信——基于Xmpp协议实现的聊天室
  20. Ue4管线中的灯光信息

热门文章

  1. C++各种输入
  2. jQuery--基本事件总结
  3. String常用方法解析
  4. 名词解析-RPC
  5. 在并发情况下,Elasticsearch 如果保证读写一致?
  6. Elasticsearch 在部署时,对 Linux 的设置有哪些优化方 法?
  7. Redis缓存穿透、缓存雪崩、缓存击穿
  8. 学习ELK日志平台(五)
  9. html5知识点补充—footer元素的使用
  10. java中自动插入一个默认的构造函数,这到底怎么回事?