1
私はms sql express 2008を使用していますが、以下は私の問題です。私のシステムには、2つの役割 '1'と '2'を持つユーザーと、ただ1つの役割 '2'を持つユーザーがあります。このストアドプロシージャでは、私はちょうど一つの役割を持つユーザーを取得したい。私は '2'の役割しか持たない特定のユーザーをシステムから取得したい。SQL Serverで1つの役割しか持たないユーザーを取得する
次は私のSPです:
SELECT tblUsers.user_id, tblUsers.user_username, tblUsers.user_password, tblUsers.user_name, tblUsers.user_surname, tblUsers.user_email
FROM tblRoles
INNER JOIN tblUserRole ON tblRoles.role_id = tblUserRole.role_id
INNER JOIN tblUsers ON tblUserRole.user_id = tblUsers.user_id
WHERE (tblUserRole.role_id = 2) AND NOT (tblUserRole.role_id = 1)
この文はまだだけでなく、私に二つの役割を持つユーザーを得ています。 having
句と一緒にgroup by
を使用して
は、あなたは私がそれを理解する助けてくださいすることができます。クエリを実行しようとすると、列 'tblUsers.user_id'が集計関数またはGROUP BY句に含まれていないため、選択リストで無効です。カラムuser_idを削除しようとしましたが、SELECT文の最初のカラムで常に同じことを伝え続けます – IanCian
申し訳ありません。今すぐ答えを更新しました。うまくいくはずです。 –
10倍のアップデートが今すぐうまくいきました。私はそれを理解できます:) – IanCian