我正在从头开始学习MS SQL,我正在尝试在我的桌面上创建一个连接但是我的查询出了问题:
SELECT * FROM Users.[User] JOIN Users.[User] as u ON (u.id = Users.[UserAddress].user);
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'user'.
出了什么问题:)?
答案 0 :(得分:6)
user
是SQL Server中的保留字,因此您需要将其括在方括号中。保留字列表为here。
我建议您将查询编写为:
SELECT *
FROM Users.[User] u JOIN
Users.UserAddress ua
ON u.id = ua.[user];
注意:这也解决了您似乎想要加入UserAddress
而不是加入User
的问题。
还有一些建议:
另外,我通常以复数形式(Users
)给我的表名用单数(UserId
)中的主键,然后总是尝试让外键具有相同的名称(在这两种情况下UserId
。)
答案 1 :(得分:0)
用户是关键字,因此要访问列"用户",您必须将其放在方括号中:
SELECT * FROM Users.[User] JOIN Users.[User] as u ON (u.id = Users.[UserAddress].[user]);