MS SQL - 执行简单连接

时间:2014-10-06 12:06:32

标签: sql sql-server ssms

我正在从头开始学习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'.

table structure

出了什么问题:)?

2 个答案:

答案 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]);