MSSQL多个外键对应同一个表时查询外键的内容

当有一个表同时有多个外键同时指向某一个表时,需要通过外键来查询到相应的信息。

举个例子:这是一个订车票的

城市表

CityID	CityName
1	广州
2	湛江
3	江门
4	肇庆
5	惠州
6	汕头

车次表

CarID	CarName	StartCityID	EndCityID
1	G001	1	2
2	G002	1	3

这里的StartCityID和EndCityID分别是城市表的外键

解决方法

现在要把对应的始发城市和终点城市的名称取到,mssql语句可以这样
方法一:

SELECT 始发站=c1.CityName,终点站=c2.CityName
FROM car,City c1,City c2
WHERE StartCityID = c1.CityID AND EndCityID = c2.CityID

方法二:

SELECT 始发站=c1.CityName,终点站=c2.CityName
FROM car
JOIN City c1 ON StartCityID = c1.CityID
JOIN City c2 ON EndCityID = c2.CityID



fatkun

16条评论


You can leave the first : )



发表评论

电子邮件地址不会被公开。