根据城市ID显示国家/地区?

时间:2019-09-28 20:01:18

标签: sql sql-server join

我有这些表:

Country(CountID,Cname)
State(Stateid,Sname,CountID)
City(CtyID, ctyname, Stateid)
User(name,Age,CityID)

其中City idUser表中的外键。 Country Id不是User表中的外键。

我必须显示:Name, Age, Country

如何在SQL的“结果”视图中显示CountryUser表的所有数据?

1 个答案:

答案 0 :(得分:1)

SELECT u.Name, u.Age, cy.Cname
FROM [User] u
INNER JOIN [City] c ON u.CityID = c.CityID
INNER JOIN [State] s ON c.Stateid = s.Stateid
INNER JOIN [Country] cy ON s.CountID = cy.CountID 

另一条评论提到了关键字的使用并引用了它们以防止SQL引起混淆。如果可能的话,我建议您为表命名一些与项目不同的名称,即使是简单的为所有表加一个字符作为前缀的名称也有帮助。示例将代替用户调用表QUsers和代替状态调用表QState。任意字符确保您不必担心表名将来会成为SQL关键字。

相关问题