Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Estou quebrando a cabeça a horas, mas não encontro uma solução.
Eu tenho duas tabelas no banco de dados, ambas com a coluna ID.
Minha tabela:
Tabela1 - Tabela2
id5 id5
id6 id7
id7 id9
Eu precisaria retornar os ids que são iguais nas duas tabelas, no exemplo acima precisaria retornar: id5 e id7
o problema é que eu tenho cerca de 230 ids na tabela1, no qual eu preciso verificar se tem na tabela2.
Acho que innerjoin não seria bom nesse caso neh, devido a ser muitos registros a verificar.. no caso seriam 230 inner joins
Qual deveria ser a solução ideal, preciso apenas retornar os IDS que tem em ambas as tabelas
$SQL = "SELECT id FROM `tabela1` WHERE `id`=(SELECT id FROM `tabela2`) DESC";
Mano nunca tentei mais acho que funciona pelo menos eu vi uma vez em um site algo parecido, não curta tentar, se outra forma você poderia fazer o seguinte, listava todos os id da tabela1 e depois fazia o seguinte
$SQL = "SELECT id FROM `tabela2` WHERE `id`='".$Tabela1['id']."'";
E depois se no mysql_num_rows retorna-se verdadeiro você listava o id.#3.. há vários meios..
left ou right join podem resolver..
Não entendi com o que comentou sobre executar "230" inner join..
Outro meio simples é usando subquery conforme exemplo do post #4..
O problema no post #4 é que está usando o sinal de atribuição, o que resultaria em erro..
Teria que ser
WHERE id IN (SELECT id FROM tabela2)
>
#3.. há vários meios..
left ou right join podem resolver..
Não entendi com o que comentou sobre executar "230" inner join..
Outro meio simples é usando subquery conforme exemplo do post #4..
O problema no post #4 é que está usando o sinal de atribuição, o que resultaria em erro..
Teria que ser
WHERE id IN (SELECT id FROM tabela2)
Ata kkk, Desculpa eu realmente não conheço esse meios.
inner join, left join... right join ?