mysql与另一个表

时间:2017-03-30 11:02:00

标签: php mysql

我有一个表名tbl_user enter image description here

此表包含一个列名db_responsibleid,其中包含此人的责任ID,此人也在此表中 示例穆罕默德有db_uid=1而萨米尔有db_responsibleid=1这意味着穆罕默德对萨米尔负责

我还有另一个表名tbl_department,表用户包含列名db_udepartment

上的部门ID

我尝试使用部门的名称以及负责人的姓名和姓氏db_uid='$id'

$ id将来自网址

这是我使用的查询

     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'

我如何解决这个问题,并获取负责人姓名和部门名称的所有信息?

1 个答案:

答案 0 :(得分:1)

你不能混合implizit和explizit join。 如果你决定使用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注入