Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andrea cerqueira

Vários Joins

Recommended Posts

Tenho no meu bd uma tabela pra cada forma de pagamento (eu sei que isso é ruim) e preciso pegar os cartões que estão espirando no momento, então eu tentei usar o join nas tabelas de cartões.

tipo:

 

SELECT x.*
FROM anuncios AS x
JOIN pag_visa a ON a.id_pedido = x.id_pedido AND a.data_exp = '8/2014'
JOIN pag_cartao_manual b ON b.id_pedido = x.id_pedido AND b.data_exp = '8/2014'
JOIN pag_redecard c ON c.id_pedido = x.id_pedido AND c.data_exp = '8/2014'
JOIN pag_visa_sitef d ON d.id_pedido = x.id_pedido AND d.data_exp = '8/2014'
JOIN pag_master_sitef e ON e.id_pedido = x.id_pedido AND e.data_exp = '8/2014'
JOIN pag_diners_sitef f ON f.id_pedido = x.id_pedido AND f.data_exp = '8/2014'
GROUP BY x.id_pedido

 

existem 3 cartões com essa data, 8/2014 de vencimento no sistema, mas a consulta me retorna 0 resultados.

os mesmo se encontram na tabela pag_visa.

se eu deixo apenas o primeiro join na query ela me retorna os 3 cartões, mas com todos os outros joins não me retorna nada, só que o cartão pra vencer pode estar em uma dessas 6 tabelas.

 

Alguém pode me ajudar?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estas tabelas são relacionas ou apenas tem a mesma estrutura?

 

Se for o segundo caso apenas use UNION entre as tabelas para unir os resultados de todas as tabelas

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas o nome deste campo é o mesmo? teste usando o UNION

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que fiz errado :)

 

#1222 - The used SELECT statements have a different number of columns

 

SELECT x.* FROM anuncios x
UNION
SELECT a.* FROM pag_visa a WHERE a.data_exp = '8/2014'
UNION
SELECT b.* FROM pag_redecard c WHERE c.data_exp = '8/2014'
UNION
SELECT c.* FROM pag_visa_sitef d WHERE d.data_exp = '8/2014'
UNION
SELECT d.* FROM pag_master_sitef e WHERE e.data_exp = '8/2014'
UNION
SELECT e.* FROM pag_diners_sitef f WHERE f.data_exp = '8/2014'
UNION
SELECT f.* FROM pag_cartao_manual b WHERE b.data_exp = '8/2014'
GROUP BY x.id_pedido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente manter este padrão

 

SELECT x.* FROM anuncios AS x JOIN pag_visa a ON a.id_pedido = x.id_pedido AND a.data_exp = '8/2014' GROUP BY x.id_pedido

 

UNION

 

SELECT x.* FROM anuncios AS x JOIN pag_cartao_manual b ON b.id_pedido = x.id_pedido AND b.data_exp = '8/2014' GROUP BY x.id_pedido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que resolveu parabéns :natallaugh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.