我有这些表:
Country(CountID,Cname)
State(Stateid,Sname,CountID)
City(CtyID, ctyname, Stateid)
User(name,Age,CityID)
其中City id
是User
表中的外键。 Country Id
不是User
表中的外键。
我必须显示:Name, Age, Country
。
如何在SQL的“结果”视图中显示Country
和User
表的所有数据?
答案 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关键字。