-1

说我有

users.id

roles.id

usersroles.users_id, usersroles.roles_id

如何使用三重连接获取用户 1 的以下标题(我认为选择中的 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

为此,您将需要两个联接:

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 表与角色表连接起来(没有条件,因此所有可能性都被连接),然后您检查是否存在特定组合的 usersroles 条目。

于 2013-09-26T21:35:44.963 回答