[英]INNER JOIN with 4 tables
我在内部连接多个表时遇到问题。 当我加入三个表中的任何一个时,它都会正确返回结果。 例如:
SELECT jobLink.*
, trucks.*
, employees.*
FROM jobLink
JOIN schedule
ON jobLink.jobID = schedule.id
JOIN employees
ON jobLink.empID = employees.id
WHERE jobLink.thedate = '2014-18-07'
AND schedule.id = 439
将返回工作名称及其下的所有员工。
加入最后一个加入后,我得到的结果是空的,使我相信我的订单已结清。 我愿意接受其他建议,因为可能有更好或更有效的方法来完成此操作,因此在下面列出了我的表格。 任何帮助表示赞赏。
jobLink表:
id | jobID | empID | copy | truck | thedate
_____________________________________________________________________
员工表:
id | name | abb | pos | current
_____________________________________________________________________
卡车表:
id | num | sort
_____________________________________________________________________
时间表表:
id | name | address | city | phone | email
_____________________________________________________________________
我的查询当前是:
SELECT jobLink.*
, trucks.*
, employees.*
FROM jobLink
JOIN schedule
ON jobLink.jobID = schedule.id
JOIN employees
ON jobLink.empID = employees.id
JOIN trucks
ON jobLink.truck = trucks.id
WHERE jobLink.thedate = '2014-18-07'
AND schedule.id = 439
每个表都有不同数量的结果。 Schedule有1个结果,但其余结果将根据工作中有多少名员工和卡车而有所不同(来自Schedule)。 我试图产生这样的东西:
员工最终不会在卡车下面,因为我没有在db表中进行设置,但可以在员工列表之前或之后列出。 提前致谢!
是的,输出的结果是php抱歉,没有具体说明... @Strawberry与我的一位同事交谈后,他的建议是更改结构。 通过更改结构并添加一个job_truck
表和一个job_employees
表,我可以通过使用内部联接来完成所需的工作。 @RubahMalam是的,我确实尝试过左联接,但是我无法在一个查询中完成它。 感谢您的建议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.