Ir para conteúdo

POWERED BY:

Arquivado

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

Buthy

[Resolvido] Selecionar de duas tabelas

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode colocar uma virgula ali, no lugar do AND, ou usar um UNION entre as 2 consultas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>";
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

http://dev.mysql.com/doc/refman/4.1/pt/union.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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.