我在连接多个表时遇到问题。当我加入三个表中的任何一个时,它会正确返回结果。例如:
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
每张表都有不同数量的结果。时间表有1个结果,但其余的将根据工作人员和卡车的数量(从时间表)而有所不同。我试图产生这样的东西:
员工不会在卡车下面,因为我没有在数据库表中设置,但可以在员工列表之前或之后列出。提前谢谢!
答案 0 :(得分:0)
是的,输出是php抱歉没有更具体... @Strawberry在与我的同事交谈后,他的建议是改变结构。通过更改结构并添加job_truck
表和job_employees
表,我可以通过使用内部联接来完成我需要的内容。 @RubahMalam是的我确实试过了左连接,但我无法在一个查询中完成它。谢谢你的建议。