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
updatedupdated2024-08-302024-08-30