-1

私が持っていると言う

users.id

roles.id

usersroles.users_id, usersroles.roles_id

トリプル結合を使用してユーザー 1 の次のヘッダーを取得するにはどうすればよいですか (select の IF 句だと思いますか?)。

users.id, roles.id, (tinyint)has_the_role
1,1,0
1,2,1
1,3,1
1,4,0
4

1 に答える 1

1

そのためには、2 つの結合が必要になります。

SELECT users.id, roles.id, 
    CASE WHEN usersroles.roles_id IS NULL THEN 0 ELSE 1 END AS has_the_role
FROM users
INNER JOIN roles
LEFT JOIN usersroles ON users.id = usersroles.users_id AND roles.id = usersroles.roles_id

最初に users テーブルを roles テーブルと結合し (条件がないため、すべての可能性が結合されます)、その後、特定の組み合わせの usersroles エントリがあるかどうかを確認します。

于 2013-09-26T21:35:44.963 に答える