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