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

Sql 根据城市ID显示国家/地区?,sql,sql-server,join,Sql,Sql Server,Join,我有这些桌子: Country(CountID,Cname) State(Stateid,Sname,CountID) City(CtyID, ctyname, Stateid) User(name,Age,CityID) 其中,City id是User表中的外键Country Id不是User表中的外键 我必须显示:姓名、年龄、国家 如何在SQL的结果视图中显示国家和用户表的所有数据 SELECT u.Name, u.Age, cy.Cname FROM [User] u INNER JOI

我有这些桌子:

Country(CountID,Cname)
State(Stateid,Sname,CountID)
City(CtyID, ctyname, Stateid)
User(name,Age,CityID)
其中,
City id
User
表中的外键
Country Id
不是
User
表中的外键

我必须显示:
姓名、年龄、国家

如何在SQL的结果视图中显示
国家
用户
表的所有数据

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混淆。如果可能的话,我建议将您的表名设置为与项目不同的名称,即使是像在所有表前面加字符这样简单的名称也会有所帮助。例如,用户调用表quser,而不是State调用表QState。任意字符可以确保您永远不必担心表名将来会变成SQL关键字。

谢谢@Justin Savala