select a.*, b.* from
(
SELECT
gm.Idaut AS IDIDA,
gm.IdGuia AS GIDA,
DATE_FORMAT(gm.Data,'%d/%m/%Y') as DATAI,
gm.Viagem as ViagensI,
gm.Turma as TURMAI,
gm.Idcarro as CARROI,
gm.IdLinha as LINHAI ,
gm.Sentido as IDA,
DATE_FORMAT(gm.HoraSaida,'%H:%i') as SAIDAI,
DATE_FORMAT(gm.HoraChegada,'%H:%i')as CHEGADAI,
DATE_FORMAT(gm.Tempo,'%H:%i') as TEMPOI,
gm.Passageiros as PAXI,
(SELECT gm1.IdGuia FROM guiasmov gm1 where gm1.IdGuia < gm.IdGuia AND gm.Sentido = 0 order by gm1.IdGuia DESC limit 0,1) AS ID2,
(SELECT TIMEDIFF(DATE_FORMAT(gm.HoraSaida,'%H:%i'),DATE_FORMAT(HoraSaida,'%H:%i')) FROM guiasmov where IdGuia = ID2 AND gm.Sentido = 0) AS INTERVALOIDA
FROM guiasmov gm
WHERE
gm.Data = '2009-09-01' AND
gm.Idcarro Between 100 AND 130 AND
gm.Idlinha = 13
AND gm.Sentido = 0
)a,
(
SELECT
g.Idaut AS IDVOLTA,
g.IdGuia as GVOLTA,
DATE_FORMAT(g.Data,'%d/%m/%Y') as DATAV,
g.Viagem as ViagensV,
g.Turma as TURMAV,
g.Idcarro as CARROV,
g.IdLinha as LINHAV,
g.Sentido as VOLTA,
DATE_FORMAT(g.HoraSaida,'%H:%i') as SAIDAV,
DATE_FORMAT(g.HoraChegada,'%H:%i') as CHEGADAV,
DATE_FORMAT(g.Tempo,'%H:%i') as TEMPOV,
g.Passageiros as PAXV,
(SELECT gm2.IdGuia FROM guiasmov gm2 where gm2.IdGuia < g.IdGuia AND g.Sentido = 1 order by gm2.IdGuia DESC limit 0,1) AS ID2V,
(SELECT TIMEDIFF(DATE_FORMAT(g.HoraSaida,'%H:%i'),DATE_FORMAT(HoraSaida,'%H:%i')) FROM guiasmov where IdGuia = ID2V AND g.Sentido = 1) AS INTERVALOVOLTA
FROM guiasmov g WHERE
g.Data = '2009-09-01' AND
g.Idcarro Between 100 AND 130 AND
g.Idlinha = 13
AND g.Sentido = 1
)b
WHERE b.ViagensV = a.ViagensI and b.TURMAV = a.TURMAI AND b.GVOLTA = a.GIDA
ORDER BY SAIDAI