我需要修复查询,不知道如何。实际上查询是这个mysql查询与联盟和限制多表
(SELECT qrliststgo.ordenser,qrliststgo.razon,qrliststgo.emision,qrliststgo.despacho,hitos.fecha FROM `qrliststgo`,`hitos` WHERE `qrliststgo`.`tipotransporte`='I' AND `hitos`.`idplace`=`qrliststgo`.`sigla` AND `hitos`.`guia`=`qrliststgo`.`guia`) UNION (SELECT qrlistvalpo.ordenser,qrlistvalpo.razon,qrlistvalpo.emision,qrlistvalpo.despacho,hitos.fecha FROM `qrlistvalpo`,`hitos` WHERE `tipotransporte`='I' AND `hitos`.`idplace`=`qrlistvalpo`.`sigla` AND `hitos`.`guia`=`qrlistvalpo`.`guia`) UNION (SELECT qrlistsananto.ordenser,qrlistsananto.razon,qrlistsananto.emision,qrlistsananto.despacho,hitos.fecha FROM `qrlistsananto`,`hitos` WHERE `qrlistsananto`.`tipotransporte`='I' AND `hitos`.`idplace`=`qrlistsananto`.`sigla` AND `hitos`.`guia`=`qrlistsananto`.`guia`) UNION (SELECT qrlistlocalstgo.ordenser,qrlistlocalstgo.razon,qrlistlocalstgo.emision,qrlistlocalstgo.despacho,hitos.fecha FROM `qrlistlocalstgo`,`hitos` WHERE `qrlistlocalstgo`.`tipotransporte`='I' AND `hitos`.`idplace`=`qrlistlocalstgo`.`sigla` AND `hitos`.`guia`=`qrlistlocalstgo`.`guia`) UNION (SELECT qrlistlocalvalpo.ordenser,qrlistlocalvalpo.razon,qrlistlocalvalpo.emision,qrlistlocalvalpo.despacho,hitos.fecha FROM `qrlistlocalvalpo`,`hitos` WHERE `qrlistlocalvalpo`.`tipotransporte`='I' AND `hitos`.`idplace`=`qrlistlocalvalpo`.`sigla` AND `hitos`.`guia`=`qrlistlocalvalpo`.`guia`) UNION (SELECT qrlistlocalsananto.ordenser,qrlistlocalsananto.razon,qrlistlocalsananto.emision,qrlistlocalsananto.despacho,hitos.fecha FROM `qrlistlocalsananto`,`hitos` WHERE `qrlistlocalsananto`.`tipotransporte`='I' AND `hitos`.`idplace`=`qrlistlocalsananto`.`sigla` AND `hitos`.`guia`=`qrlistlocalsananto`.`guia`)
是的,我知道它很长,基本上,我需要找到匹配的是2列有“hitos”的2列“qrliststgo”的所有行。
(SELECT qrliststgo.ordenser,qrliststgo.razon,qrliststgo.emision,qrliststgo.despacho,hitos.fecha FROM `qrliststgo`,`hitos` WHERE `qrliststgo`.`tipotransporte`='I' AND `hitos`.`idplace`=`qrliststgo`.`sigla` AND `hitos`.`guia`=`qrliststgo`.`guia`)
,然后使用UNION再次做同样的名为“qrlistvalpo”另一个表和“hitos”。
遇到的问题IM的是,在“hitos”,有3行匹配,从“qrliststgo”一行,所以它被“复制” ...... 3线,或与同一信息除了最后一个因为它在“hitos”中找到3个结果而被更改。
我该怎么办?
(我需要这一个PHP以EXCELL出口)
更新:
我需要的是显示所有来自qrlist行那里是在hitos至少一行是qrlist.sigla = hitos .idplace和qrlist.guia = hitos.guia。
如果hitos中匹配的结果多于一个,则显示第一个结果并跳过其他结果,然后从qrlist中检查另一个结果。
不知道如果我正确
查找到'LEFT JOIN' –
是我没有,我有这个'SELECT * FROM' qrlistlocalstgo' LEFT JOIN'hitos' ON'qrlistlocalstgo'.'sigla' ='hitos'.'idplace' AND'qrlistlocalstgo'.'guia' ='hitos'.'guia'' and that results in 16 rows,13 with null 'hitos'列上的数据以及qrlist部分中具有相同数据的3行以及hitos列上的不同数据cos我有3行匹配guia和idia上的guia和sigla。 – Sebiche