2

ユーザーとロールの 2 つのテーブルがあり、1 人のユーザーが複数のロールを持つことができます

user: ID | FIRSTNAME | LASTNAME | etc..
       1 | PETER     | Blomp    | 


role: ID |  ROLEID   | USERID (which is user ID)
      70 |    5      |    1 (peter)
      71 |    2      |    1

私がしなければならないことと理解できないことは、ロール ID が整数でないユーザーのデータを取得する方法です。元。ユーザー PETER は roleID の 5 と 2 を持つことができます。

4

2 に答える 2

3
SELECT
    user.ID, user.FirstName, user.LastName
FROM
    user
WHERE
    user.ID NOT IN (
                    SELECT ID FROM role WHERE role.RoleID = '3'
                   )

これは、MySQLでサブクエリと呼ばれるものを使用します。WHERE 句のサブクエリは、RoleID が 3 のすべての ID (Peter など) を選択します。次に、 を使用して、これらの ID (Peter)NOT IN()をユーザーの選択から除外します。

于 2013-03-28T12:34:52.400 に答える
0

あなたは単に使用することができますNOT IN

select * from user inner join role on role.userid = user.id
user.ID NOT IN ( SELECT ID FROM role WHERE role.RoleID = '3')
于 2013-03-28T12:33:22.677 に答える