车站表:
  stops(id, name)
公交线路表:
  route(num, company, pos, stop)
  
一、对公交线路表route进行自连接

SELECT * FROM route R1, route R2
WHERE R1.num=R2.num AND R1.company=R2.company

查询结果:每条公交线路的任意两个可联通的车站。


二、用stop字段来对route(公交线路表)进行自连接。

SELECT * FROM route R1, route R2 WHERE R1.stop=R2.stop;

查询结果:共用同一车站的所有公交线。


从这两个例子我们能看出,自连接的语法结构非常简单,但语意结果往往不是那么容易理解。就我们这里所列出的两个表,如果运用得当,能解决非常多实际问题,例如,任意两个站点之间怎么换乘。

SELECT R1.company, R1.num
FROM route R1, route R2, stops S1, stopsS2
WHERE R1.num=R2.num AND R1.company=R2.company AND R1.stop=S1.id AND R2.stop=S2.id AND S1.name=’Craiglockhart’ AND S2.name=’Tollcross

SQL 自连接 (self join)相关推荐

  1. SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?

    SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join? SQL的连接(join)有哪些常见形式? sql连接查询:把多张表的列组合在一起,产 ...

  2. SQL自连接查询原理及完全连接用法

    SQL自连接查询语句 select * from customers c1,customer c2; 所以最终的自连接表,如下所示: 完全连接: 完全连接,是通过关键字full join连接两张表,返 ...

  3. SQL 中left join ,inner join,right join的区别

    2019独角兽企业重金招聘Python工程师标准>>> sql中存在有左连接  插入 右连接 sql语句 left join ,inner join,right join 进行 wh ...

  4. sql之left join、right join、inner join的区别,连接自己时的查询结果测试

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包 ...

  5. sql server left join 重复数据原因图

    sql server left join 重复数据原因图     网购从这里开始 ( 物美价廉还等什么?!!! )

  6. LINQ体验(6)——LINQ to SQL语句之Join和Order By

    LINQ体验(6)--LINQ to SQL语句之Join和Order By Join操作 适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等.对各个表之间的关系,就用这些实现对多个表的操 ...

  7. SQL开发技巧 join从句

    SQL标准中 join的类型 1.内连接 (INNER) 2.全外连接(FULL OUTER) JOIN 3.左外连接(LEFT OUTER) 4.右外连接 (RIGHT OUTER) 5.交叉连接 ...

  8. SQL中cross join,left join,right join ,full join,inner join 的区别

    http://blog.csdn.net/sgivee/article/details/5081350 SQL中cross join,left join,right join ,full join,i ...

  9. SQL 中 left join、right join、inner join 的区别

    SQL 三个 join 的含义 left join(左联接):返回左表中的所有记录以及和右表中的联接字段相等的记录. right join(右联接):返回右表中的所有记录以及和左表中的联接字段相等的记 ...

  10. SQL语句inner join,left join ,right join连接的不同之处

    SQL语句inner join,left join ,right join连接的不同之处 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 ...

最新文章

  1. Docker Swarm Beta 发布,Docker 集群管理
  2. 关于核定区域电网2018—2019年输电价格的通知
  3. linux卸载docker redis,【Docker】Redis在docker上的安装、启动、停止、删除操作
  4. 带有ActiveMQ的JMS
  5. 【渝粤题库】陕西师范大学202801 中国古代文学(五) 作业
  6. mysql数据排序指令_MySQL 排序 | 菜鸟教程
  7. yii2 mysql in_yii2 mysql数据库读写分离配置
  8. Springboot中几个层的功能总结
  9. Python 操作redis 常用方法
  10. mysql连接不用数据库名称_C++连接MySQL数据库
  11. 微信授权登录实现分析
  12. 使用WIFIPR跑握手包,破解wifi密码
  13. linux批量解压压缩包
  14. linux gpt分区挂载,GPT分区和挂载
  15. 无法访问该文件可能已损坏 或者服务器,win7系统打开xls文件提示无法访问文件可能损坏的解决方法...
  16. 一 Django模型层简介
  17. 计算机excel怎么删除重复项,excel怎么删除重复项
  18. 计算机安全标准是什么,计算机安全等级划分标准
  19. java8之CompletableFuture
  20. 不平衡数据处理方法总结(学习笔记)

热门文章

  1. 如何给CSDN博客添加个人微信公众号二维码或自定义栏目
  2. 英语 | Day 27、28 x 句句真研每日一句(断开、嵌套)
  3. Oracle创建视图view权限不足
  4. 处理创建Maven项目时Maven插件无法解析的错误
  5. 渲染管线中几种基础的坐标空间(对象空间、世界空间、相机空间(观察空间)、NDC空间、裁剪空间、屏幕空间)
  6. 放眼看世界(故宫)+故宫冷知识
  7. json-bigint
  8. 专利ppt结束语_Oraclevs谷歌-专利阶段的结语,Oracle屈服
  9. 科烨盈创祝贺2015中国呼叫中心及企业通信大会圆满成功
  10. ORACLE解锁record is locked by another user