To com um problema que ta me deixando doido da vida, já tive ajuda de uns amigos mas nada resolveu, vou explicar:
Estou tentando fazer um filtro, mas estou me enrolando na parte do select, vou tentar explicar.
É um sistema de transportadora, onde um usuario escolhe a cidade origem e cidade destino, então o sistema deveria retornar as transportadoras que atendam a essas duas cidades.
Meu sistema tem as seguintes tabelas:
mrh mrh_cidade mrh_transportadora - cod_mrh - fk cod_cid - fk cod_transp - nome - fk cod_mrh - fk cod_mrh - fk cod_estado
Fiz dois select, esse com inner join:
SELECT transportadora.cod_transp, nome FROM mrh_transportadora INNER JOIN transportadora ON transportadora.cod_transp = mrh_transportadora.cod_transp INNER JOIN mrh_cidade ON mrh_cidade.cod_mrh = mrh_transportadora.cod_mrh WHERE mrh_cidade.cod_cid IN ( 13, 14 ) GROUP BY cod_transpE esse:
SELECT t.nome, t.cod_transp FROM transportadora t, cidade c, mrh, mrh_transportadora mt, mrh_cidade mc WHERE c.cod_cid = mc.cod_cid AND mrh.cod_mrh = mc.cod_mrh AND t.cod_transp = mt.cod_transp AND mrh.cod_mrh = mt.cod_mrh AND c.cod_cid IN ( '13', '14' )
No inicio achei que tava certo, mas ta acontecendo o seguinte, vamos supor:
A transportadora A, B atendem as cidades de codigo 13,14, 15. A transportadora C atende 13, 14, 15 e 33.
Se eu faço o select com 13 e 14, me aparece todas as transportadoras.
Se eu faço o select com 15 e 33, me aparece só uma transportadora.
Mas se faço o select com 14 e 33 me aparece todas as transportadoras, mas no caso do meu filtro não deveria aparecer nenhum, porque nenhuma transportadora atende a essas duas cidades.
Galera desculpa se ta grande aqui, tentei explicar da melhor forma possivel.
Quem puder me ajudar eu agradeço.