嘿,我正在尝试使用表用户中的所有记录填充我的查询,并让每个人检查他们从其他 2 个表(user_permission 和权限)中的权限。
我当前的查询是这样的:
SELECT user.id, user.email,
CONCAT(' ', user.name, user.username) AS theNameUserName,
IF(user.opted_in = 0, 'NO', 'YES') AS optedIn
FROM user AS user, user_permission AS userPerm
INNER JOIN permission AS Perm ON Perm.id = userPerm.permission_id;
它执行没有问题,但一遍又一遍地只有相同的数据。它只返回1000条记录,每个人重复3次。我在用户表中有470 个用户,所以我应该返回所有 470 条记录,这些记录也告诉我他们的许可。
我需要对上面的查询做什么才能做到这一点?User.id将与user_permission user_id匹配。
user_permission 表布局:
user_id permission_id
1 1
2 3
3 3
8 4
9 4
10 4
11 4
12 4
13 4
....etc etc
权限表:
id name
4 registered users
3 editor
2 developer
1 administrator
5 registered builders
用户表:
id name email username opted_in
11 David Dxxxx dxxxxx@exxxx.com dxxxxxx@exxxxx.com 0
12 Michael Lxx sx@sprintmail.com sxxxxxx@sxxxxx.com 0
13 Jon Fxxxxxx jxxxxxxx@xxx.com jxxxxxx@sxxxxx.com 0
etc etc .......