我有一个表名tbl_user
php - mysql将同一个表与另一个表连接-LMLPHP

该表包含列名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注入

09-12 01:37