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"] + "')"
);
しかし、次のエラーが表示されます。
サブクエリに
select
が導入されていない場合、EXISTS
リストには1つの式のみを指定できます。
この問題を解決するにはどうすればよいですか?
これを試して:
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インジェクション攻撃によるセキュリティリスクを回避するために、クエリでパラメータを使用することを強くお勧めします。
お役に立てば幸いです!
これを試してください-
"SELECT
ID, Salt, password, BannedEndDate
, (
SELECT COUNT(1)
FROM dbo.LoginFails l
WHERE l.UserName = u.UserName
AND IP = '" + Request.ServerVariables["REMOTE_ADDR"] + "'
) AS cnt
FROM dbo.Users u
WHERE u.UserName = '" + LoginModel.Username + "'"