Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Dae galera
É o seguinte,
tenho duas tabelas com os seguintes atributos
exercicio_objetivo (atributos: nvlcod, objtit, objper)
exercicio_preencher (atrivutos: nvlcod, pretit, preper)
elas tem o atributo nvlcod em comum.
queria selecionar as duas tabelas, onde o nvlcod seria igual a 1
quando eu seleciono somente de uma tabela, funciona.. mas com as duas não.
o que estou testando é o seguinte:
$sql = "SELECT * FROM exercicio_objetivo WHERE nvlcod = '1'";
esse funcionou, mas para selecionar tudo das DUAS tabelas, onde o nvlcod = 1, como eu faço?
tentei assim, e nada:
$sql = "SELECT * FROM exercicio_objetivo AND exercicio_preencher WHERE nvlcod = '1'";
o codigo inteiro:
<?
include ("conexao.php");
?>
....
....
<?
$sql = "SELECT * FROM exercicio_objetivo AND exercicio_preencher WHERE nvlcod = '1'";
$c_usu = mysql_query($sql,$con);
while ($r_usu = mysql_fetch_array($c_usu)){
echo "<tr>";
echo "<td>$r_usu[objtit]</td>";
echo "<td>$r_usu[objper]</td>";
echo "</tr>";
}
?>
sendo que o erro acontece na linha do WHILE
muito obrigado
>
você pode colocar uma virgula ali, no lugar do AND, ou usar um UNION entre as 2 consultas...
Ok, se eu uso a , no lugar do AND, ficando assim:
$sql = "SELECT * FROM exercicio_objetivo, exercicio_preencher WHERE nvlcod = '1'";
Da o erro: Column 'nvlcod' in where clause is ambiguous
agora esse UNION eu nao sei como usar.. ehehe
Como funciona??
Valeu
Tenta assim:
<?php
$sql = mysql_query("SELECT * FROM `exercicio_objetivo`, `exercicio_preencher` WHERE `nvlcod` = '1'") or die (mysql_error());
while ($r_usu = mysql_fetch_array($sql))
{
echo "<tr>";
echo "<td>$r_usu[objtit]</td>";
echo "<td>$r_usu[objper]</td>";
echo "</tr>";
}
?>se não der certo a solução do Douglas, use um JOIN
SELECT * FROM exercicio_objetivo AS obj JOIN exercicio_preencher AS preenche ON obj.nvlcod = preenche.nvlcod WHERE obj.nvlcod=1
Ai vai...
<?
// SELECIONO E COMPARO OS CAMPOS DO nvlcod E DOU UM NOVO NOME PARA CADA TABELA COMO Eo1 e Eo2 E DEPOIS FAÇO A CHAMADA COM OS DADOS JA COMPARADOS - WHERE Eo1.nvlcod
$sql = "SELECT * FROM exercicio_objetivo Eo1 INNER JOIN exercicio_preencher Eo2 ON Eo1.nvlcod = Eo2.nvlcod WHERE Eo1.nvlcod = '1'";
$c_usu = mysql_query($sql,$con);
while ($r_usu = mysql_fetch_array($c_usu)){
echo "<tr>";
echo "<td>$r_usu[objtit]</td>";
echo "<td>$r_usu[objper]</td>";
echo "</tr>";
}
?>
cara se der errado posta ae, que rapidinho chega ajuda...
vlw parceiro....(y)
opaa!
valeu galeraa
ja consegui, tive que fazer dois selects, por causa do jeito que o meu banco de dados estava
mas funcionou tudo certinho! :D
brigadao
Com o UNION, ficaria algo como:
$sql = "SELECT * FROM exercicio_objetivo WHERE nvlcod = 1
UNION SELECT * FROM exercicio_preencher WHERE nvlcod = 1"; mais fácil não?!
bastava pesquisar um pouco, pelo termo que indiquei:
Pessoal, estou tentando fazer uma consulta em duas tabelas, porém me retorna dados duplicados.
Tenho uma tabela chamada tb_animal e outra tb_cliente
Fiz o seguinte
SELECT * FROM tb_cliente INNER JOIN tb_animal
ele traz duplicado conforme abaixo.. Podem me ajudar ?
2536584102 teste 14/10/1996 5048754495 teste@terra.com.br 65231478 85478506 testador de software Brasil M 896523/D 10/11/2016 654982/D Aurora F Puro Teste2 605 39548952014 Teste2 25/03/1975 7048129952 teste2@hotmail.com 85428631 72854590 analista de testes Inglaterra F 654982/D 24/11/2016 654982/D Aurora F Puro Teste2 605 25365841028 teste 14/10/1996 5048754495 teste@terra.com.br 65231478 85478506 testador de software Brasil M 896523/D 10/11/2016 896523/D Trovao M Puro teste 203 39548952014 Teste2 25/03/1975 7048129952 teste2@hotmail.com 85428631 72854590 analista de testes Inglaterra F 654982/D 24/11/2016 896523/D Trovao M Puro teste 203
você pode colocar uma virgula ali, no lugar do AND, ou usar um UNION entre as 2 consultas...