mysql自连接

原创 2011年01月12日 16:51:00

SELECT语句中的自连接。
  到目前为止,我们连接的都是两张不同的表,那么能不能对一张表进行自我连接呢?答案是肯定的。
有没有必要对一张表进行自我连接呢?答案也是肯定的。

表的别名:
一张表可以自我连接。进行自连接时我们需要一个机制来区分一个表的两个实例。
在FROM clause(子句)中我们可以给这个表取不同的别名, 然后在语句的其它需要使用到该别名的地方
用dot(点)来连接该别名和字段名。

我们在这里同样给出两个表来对自连接进行解释。
爱丁堡公交线路,

车站表:
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

我们route表用字段(num, 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, stops S2
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'

版权声明:本文为博主原创文章,未经博主允许不得转载。

Mysql自连接查询

自连接查询 假想以下场景:某一电商网站想要对站内产品做层级分类,一个类别下面有若干子类,子类下面也会有别的子类。例如数码产品这个类别下面有笔记本,台式机,智能手机等;笔记本,台式机,智能手机又可以按...
  • xiaoyaoyulinger
  • xiaoyaoyulinger
  • 2017年01月07日 17:04
  • 4222

MySQL高级查询——连接查询实例详解

前言 我们使用SQL查询不能只使用很简单、最基础的SELECT语句查询。如果想从多个表查询比较复杂的信息,就会使用高级查询实现。常见的高级查询包括多表连接查询、内连接查询、外连接查询与组合查询等,今天...
  • zhangliangzi
  • zhangliangzi
  • 2016年05月13日 17:08
  • 19099

mysql自连接与join关联

mysql自连接mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。我们举例说明,下面是商品采购表,我们需要找到采购价格比惠惠高的所有信息。 一般情况我们看到这张表我们...
  • jingege0318
  • jingege0318
  • 2017年04月18日 20:03
  • 1479

mysql 自连接

现有一Employee 表,详情如下 mysql> select * from Employee; +----+-------+--------+-----...
  • lydyangliu
  • lydyangliu
  • 2015年01月25日 15:47
  • 2329

MySQL连接查询 内连接和外连接的区别

MySQL 连接查询 1.使用连接查询的场景 将多张表进行记录的连接查询(按照某个字段指定的条件进行数据的拼接); 进行数据的拼接(两张表的内容显示在一个结果表中 使用连接查询) ...
  • sunrainamazing
  • sunrainamazing
  • 2017年04月03日 21:59
  • 1272

浅谈MySQL连接查询与外键

连接查询是同时查询多张表,通过多张表之间的关系得到最终的结果。连接查询又分成内连接、外链接和自然连接。内连接:从左表中取出每一条记录,去右表中与所有的记录进行匹配;匹配必须是某个条件在左表中与右表中相...
  • James_shu
  • James_shu
  • 2017年02月05日 14:59
  • 1782

MySQL的自然联结+外部联结(左外连接,右外连接)+内部联结

【0】README 0.1)本文旨在review 数据库的自然联结,外部联结(左外连接,右外连接),内部联结的知识; 【1】自然联结 1)自然联结定义:无论何时对表进行联结,应该至少有一个列出现不...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2016年05月13日 17:00
  • 3711

自连接、外连接和自连接查询

表1:teacher +----+--------+ | id | name   | +----+--------+ |  1 | 刘德华 | |  2 | 张学友 | |  4 | 黎明...
  • a859522265
  • a859522265
  • 2012年02月20日 00:42
  • 35306

左连接、右连接、外连接、内连接、自连接的理解

今天做项目遇到一个需求就是通过一个登陆字段查询该用具有的权限,然后根据权限显示对应的页面。 sql语句: select * from elec_role_popedom a  lef...
  • u013998070
  • u013998070
  • 2014年12月09日 21:45
  • 1857

Oracle数据库中自连接是什么?

自连接是对同一个表进行的连接。要自行一个自连接,必须使用不同的表别名来标识在查询中每次对表的引用。现在考虑一个例子:store模式包含了一个名为employees的表,其中保存了员 ...
  • lijia900924
  • lijia900924
  • 2014年01月07日 14:13
  • 1791
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql自连接
举报原因:
原因补充:

(最多只允许输入30个字)