我有一个表名tbl_user
该表包含列名db_responsibleid
,该列名包含此人的负责人的ID,此人也在此表中
例如,穆罕默德有db_uid=1
和萨米尔有db_responsibleid=1
,这意味着穆罕默德负责萨米尔
我也有另一个表名tbl_department
该表用户在列名db_udepartment
上包含部门的ID
我尝试使用部门名称,负责人的姓名和姓氏,其中db_uid='$id'
$ id将从URL获取
这是我使用的查询
SELECT
user.db_uid,
user.db_fname,
user.db_lname,
user.db_username,
user.db_pass,
user.db_email,
user.db_phone,
user.db_jobtitle,
user.db_level,
user.db_isemployee,
user.db_responsibleid,
user.db_companyname,
user.db_udepartment,
tbl_department.db_department,
tbl_department.db_did,
parent.db_responsibleid,
parent.db_fname as pfname,
parent.db_lname as plname,
parent.db_uid
from tbl_user as user,tbl_department
join tbl_user as parent
on
user.db_responsibleid=parent.db_uid
where
user.db_udepartment=tbl_department.db_did
and
user.db_uid='$id'
但是这个查询给我这个错误'on子句'中的未知列'user.db_responsibleid'
我该如何解决此问题并获得所有信息,包括负责人的姓名和部门的名称?
最佳答案
您不能混合使用隐式联接和显式联接。
如果您决定使用join,则必须在所有地方都使用它:
from tbl_user as user
join tbl_department on user.db_udepartment=tbl_department.db_did
join tbl_user as parent
on
user.db_responsibleid=parent.db_uid
where
user.db_uid='$id'
提示:使用准备好的语句来防止SQL注入