Index
•  Index  •  Regras  •  FAQ  •  Pesquisar  •  Membros  •  Grupos   •  Registrar  •  Perfil  •  Entrar e ver PMs  •  Entrar  •
Responder Mensagem 
Query em duas tabelas 
Autor Mensagem
kafunga
Nível 3
Posts: 301
MensagemEnviada: 16 de Março de 2007, 4:27 pm Responder com CitaçãoVoltar ao Topo
Olá Galera.

Como faço para fazer uma query no MYSQL em duas tabelas e especificando um campo comum entre elas. Por Exemplo:

Quote:

SELECT * FROM tabela1, tabela2 WHERE idCampoComum = 'n' AND colunaIncomum = 'valor' OR idCampoComum = 'n' AND colunaIncomum = 'valor' e assim sucessivamente até completar todos os campos das duas tabelas.

A parte de trazer os campos já fiz. Estou montando a Query deste modo que apreseintei, mais ela me traz o erro:
Quote:
Column 'idCampoComum' in where clause is ambiguous

PS: o mesmo erro acontece quando eu coloco "ORDER BY campo ASC" e retiro os "idCampoComum".

Grato desde já =)

Abraços.
Ver o perfil de UsuáriosEnviar Mensagem Particular
Error404
Presidente
Posts: 1573
MensagemEnviada: 17 de Março de 2007, 10:16 pm Responder com CitaçãoVoltar ao Topo
Tente:
Code:
SELECT * FROM tabela1, tabela2 WHERE tabela1.idCampoComum = 'n' AND tabela2.colunaIncomum = 'valor' OR tabela1.idCampoComum = 'n' AND tabela2.colunaIncomum = 'valor'
Gostou do Fórum? Teve suas perguntas respondidas rápida e corretamente? Achou o pessoal gente fina? Então divulgue o fórum para seus amigos! Contamos com a sua ajuda para deixar o fórum cada dia melhor!
--------------------------------------------------------------------------------------------------------------------------
"Aquele que luta com monstros deve acautelar-se; para não tornar-se também um monstro. Quando se olha muito
tempo para um abismo, o abismo olha para você."
---Friedrich Wilhelm Nietzsche, "Além do Bem e do Mal"
Ver o perfil de UsuáriosEnviar Mensagem ParticularEnviar Email
kafunga
Nível 3
Posts: 301
MensagemEnviada: 23 de Março de 2007, 3:31 pm Responder com CitaçãoVoltar ao Topo
Infelizmente não deu =(

vou mostrar minha query real:
Code:
SELECT *
FROM `cadastro_participante` , `endereco_participante`
WHERE `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.cod_part` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.nome` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.cod_pais` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.cnpj` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.cpf` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.cei` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.nit` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.uf` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.ie` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.ie_st` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.cod_mun` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.im` LIKE '%%'
OR `cadastro_participante.idContribuinte` = '3'
AND `cadastro_participante.suframa` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.cep` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.end` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.num` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.compl` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.bairro` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.cep_cp` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.cp` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.fone` LIKE '%%'
OR `endereco_participante.idContribuinte` = '3'
AND `endereco_participante.fax` LIKE '%%'
LIMIT 0 , 30
Ver o perfil de UsuáriosEnviar Mensagem Particular
Leandro
Moderador
Posts: 463
MensagemEnviada: 19 de Junho de 2007, 8:52 am Responder com CitaçãoVoltar ao Topo
cara...no seu caso você não está crusando informações entre as duas tabelas então recomendo que você faca uma UNION.

Uma palinha:
Code:
(SELECT campo1 FROM cadastro_participante cp
WHERE cp.idContribuinte = 3 AND cp.suframa IS NULL)
UNION
(SELECT campo2 FROM endereco_participante ep
WHERE ep.idContribuinte = 3 AND ep.cep IS NULL);

É basicamente isso, mas há umas exigências que devem ser satisfeitas...os campos selecionados devem ser da mesma quantidade entre as tabelas e do mesmo tipo, se não me engano.
Sou open source.
E você?
Ver o perfil de UsuáriosEnviar Mensagem ParticularVisitar a homepage do UsuárioMSN MessengerNúmero de ICQ
Mostrar os tópicos anteriores:      
Responder Mensagem 
Ir para:   


Exibir próxima mensagem
Exibir mensagem anterior
Enviar Mensagens Novas: Proibído.
Responder Tópicos Proibído
Editar Mensagens: Proibído.
Excluir Mensagens: Proibído.
Votar em Enquetes: Proibído.


[GMT - 2:00]
Powered by phpBB © phpBB Group
:: FI Theme :: Modificado por Error404