私が持っていると言う
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
私が持っていると言う
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
そのためには、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 エントリがあるかどうかを確認します。