sql-server - "Ambiguous column name"加入表时

标签 sql-server

我很难从加入这两个表中提取用户 ID。

我的目标是找到超过 200 的所有假期余额和所有事件的用户 ID,但我一直为用户 ID 获取一个不明确的列名称。

如果我尝试提取任何其他内容,我的查询确实有效,但我想改为提取 UserID。对我的查询的任何帮助将不胜感激。

这是我的表及其列:
用户

ID (PK)
UserID
Firstname
Lastname
Email
Active (Bool) 

余额
UserID (PK)
VacationBalance

这是我的查询:
SELECT UserID FROM dbo.VacBal as I join dbo.User as T
on I.userid = T.userid 
WHERE VacationBalance > 200 and active = 1 

这是我得到的错误:

Msg 209, Level 16, State 1, Line 1 Ambiguous column name 'userid'.

最佳答案

因为每个表都包含一个 UserID列,您需要指定您想要的 UserID通过在 SELECT 中包含表别名来实现陈述:

       v
SELECT T.UserID FROM dbo.VacBal as I join dbo.User as T
on I.userid = T.userid 
WHERE VacationBalance > 200 and active = 1

关于sql-server - "Ambiguous column name"加入表时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31193354/

相关文章:

sql-server - 更新 Excel 宏中的多个 SQL 连接字符串

sql - 如何根据事件的日期、时间和持续时间检查 SQL 表中的平均并发事件?

sql-server - VistaDB有什么缺点

mysql - 如何将MySQL表和记录导入MS-SQL?

c# - 简单的建议在哪里保存设置

mysql - 在 SSMS 中创建到远程服务器上的 MySQL 数据库的链接服务器

sql - 如何在不替换 SQL Server 中的子字符串的情况下替换句子中的特定单词

sql - 动态 sql 性能和实现建议?

php :Fatal error: Call to undefined function sqlsrv_connect()

sql-server - 自动将存储过程从 SQL Server 迁移到 Postgres