我正在制作一个PHP脚本来显示当前用户属于哪个用户角色。 数据是在MySQL中,我想要的是显示所有可用角色及其所有角色,显示用户所属的位置。为什么这个mySQL LEFT JOIN不起作用?它可以是WHERE子句吗?
这是我的角色表
CREATE TABLE roles(
roleID int unsigned not null auto_increment primary key,
nombreRol char(50) not null
)
这里的角色是:
registered
pending
student
former-student
,这就是USUARIOS表角色表
CREATE TABLE rolesUsuarios (
rolesUsuariosID int unsigned not null auto_increment primary key,
userID int not null,
nombreRol char(50) not null
)
连接表
我试图创建一个LEFT JOIN像这样:
SELECT
roles.nombreRol,
rolesUsuarios.userID
FROM roles
LEFT JOIN rolesUsuarios
ON roles.nombreRol = rolesUsuarios.nombreRol
WHERE rolesUsuarios.userID = 183
(我此刻不关心安全性,只是检查了查询工作)
在这个例子中,用户183具有注册和学生。
预期的结果应该是这样的:
nombreRol -------- userID
registered ------- 183
pending ---------- NULL
student ---------- 183
former-student --- NULL
但我得到这样的结果,而不是:
nombreRol -------- userID
registered ------- 183
student ---------- 183
我如何可以改变连接? (我跟着例子here,它并在那里工作,我认为我已经按照正确的查询逻辑)
'OR .... IS NULL' –
@ PM77-1 - Nope。 – GurV