sql查询语句之SELECT的自连接
2009-01-09 13:14
471 查看
能不能对一张表进行自我连接呢?答案是肯定的。
有没有必要对一张表进行自我连接呢?答案也是肯定的。
表的别名:
一张表可以自我连接。进行自连接时我们需要一个机制来区分一个表的两个实例。
在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'
相关文章推荐
- 26. SQL -- TSQL(SELECT语句的使用,子查询,连接,通配符 )(2)
- sql查询:SELECT语句表连接,左连接、右连接和全连接
- 27. SQL -- TSQL(SELECT语句的使用,子查询,连接,通配符 )(3)
- sql语句查询某列值并用','连接
- linq to sql 语句基本查询(3):Select和Count/Sum/Min/Max/Avg
- SQL查询语句精华使用简要----关于连接
- sql语句连接查询.
- sql语句查询中exists中为什么要用select 1?
- Sql语句优化-查询两表不同行NOT IN、NOT EXISTS、连接查询Left Join
- sql语句实现2个表的查询(内连接)收藏
- SQL语句多表连接查询优化
- Day51、数据库、远程连接服务器、查询select语句、form字句、where字句、order by 子句
- 学习 SQL 语句 - Select(3): 条件查询与模糊查询
- sql语句中用select语句查询值大于平均值的情况
- sql查询语句--连接语句
- C#和SQL Server2000数据库连接,查询语句总结
- Oracle 数据库连接查询SQL语句
- sql的基础语句-sql的查询语句select
- Sqlserver基础教程系列3-基本的查询select语句
- mysqli学习笔记 mysqli连接,multi_query多语句查询,SQL预处理stmt,事务处理