我有这些表:
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的结果视图中显示User
表Country
和所有数据?
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 关键字。