Optimize complicated sql query by either changing query or indexing
I dont have the reputation to add comments so I will take a stab at an answer. My experience is with MSSQL but I think it is transferable here. 

It seems like this query is doing a bunch of redundant checks. 

Do you get different results from this:

SELECT distinct job_id, truck_id, customer from jobs where driver_id = '$driver' 
AND truck_id in 
(Select distinct truck_id from jobs where driver_id ='$driver' and time like '$date%' 
AND customer IN
(Select distinct customer from jobs where driver_id ='$driver' and time like '$date%' )) 
and time like '$date%' ORDER BY customer, truck_id ASC;


than you do from this?:

SELECT distinct job_id, truck_id, customer from jobs where driver_id = '$driver'
and time like '$date%' ORDER BY customer, truck_id ASC;


The check for customer and truck in the table with the same conditions as the main query should not be necessary.