到目前為止,我們連接的都是兩張不同的表,那麼能不能對一張表進行自我連接呢?答案是肯定的。有沒有必要對一張表進行自我連接呢?答案也是肯定的。
SELECT * FROM route R1, route R2 WHERE R1.num=R2.num AND R1.company=R2.company我們route表用字段(num, company)來進行自連接. 結果是什麼意思呢?你可以知道每條公交線路的任意兩個可聯通的車站。
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'