说我有
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
答案 0 :(得分: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表与roles表连接(无条件,因此所有可能性都已连接),然后检查是否存在特定组合的usersroles条目。