我需要修復查詢,不知道如何。實際上查詢是這個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