sql - 如何修复 "Only one expression can be specified in the select list when the subquery is not introduced with EXISTS"错误?

标签 sql sql-server tsql exists

我正在尝试在 MS SQL 2012 Express 上运行以下查询:

Select (
    Select Id, Salt, Password, BannedEndDate
    from Users
    where username = '" + LoginModel.Username + "'
), (
    Select Count(*)
    From LoginFails
    where username = '" + LoginModel.Username + "'
    And IP = '" + Request.ServerVariables["REMOTE_ADDR"] + "')"
);

但是我收到以下错误:

Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

如何解决这个问题?

最佳答案

试试这个:

 Select 
    Id, 
    Salt, 
    Password, 
    BannedEndDate, 
    (Select Count(*) 
        From LoginFails 
        Where username = '" + LoginModel.Username + "' And IP = '" + Request.ServerVariables["REMOTE_ADDR"] + "')
 From Users 
 Where username = '" + LoginModel.Username + "'

并且我强烈建议您在查询中使用参数,以避免 SQL 注入(inject)攻击的安全风险!

希望有帮助!

关于sql - 如何修复 "Only one expression can be specified in the select list when the subquery is not introduced with EXISTS"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17403475/

相关文章:

sql - SQL 代码中的 GROUP BY 子句

mysql - 有人可以给出简单的解释或连接示例吗?

mysql - 使用 SQL 来匹配查询字符串中的字符

mysql - SQL 对表之间共享值的行求和

sql - 同一个临时表上的 T-SQL If Else 条件

c# - 在组合框选择上从 SQL Server 过滤 ListView

sqlcmd给出连接链接失败

sql - 具有列最小值的行

sql - 检查给定日期是否在日期范围内

sql-server - SQL Server : What does 1++ 2 mean?