Ir para conteúdo

POWERED BY:

Arquivado

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

vinicius015

Select

Recommended Posts

Pessoal, boa tarde! Tudo bem?

 

Queria saber o seguinte, tenho uma tabela que se chama CONDOMÍNIO e outra PEDIDO.

 

No cadastro do condomínio só cadastro o nome e cada um deles, pega um id automativo pelo mysql.

 

Portanto.

id 1 - condominio1

id 2 - condominio2

 

Até ai legal, ta inserindo certinho.

 

Tenho outro form onde puxo por select a listagem de condomínio e o valor é o id (que vem originalmente da tabela CONDOMÍNIOS).

neste form, tenho o select dos condomínio e a data.

 

Preenchendo seria mais ou menos assim...

id - id condominio - data

1 - 1 - 2015-01-22

 

até ai legal, funciona tambem.

 

Porém quando realizo um consulta de dados da tabela PEDIDO.

 

Ele me mostra o id auto int (1), o id do condomínio que é (1) e a data (2015-01-22)

Ex.: 1 - 1 - 2015-01-22

 

Queria saber, como conflitar com a tabela condomínios e ela me dar o resultado pelo nome do condomínio e não o número.

ex.: 1 - condominio1 - 2015-01-22

 

Agradeço a todos que puderem me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um simples JOIN resolve

Select * from condominio c
join pedido p on p.idcondominio = c.idcondominio
where p.idpedido = x

Compartilhar este post


Link para o post
Compartilhar em outros sites

O X seria uma variável , no caso um número de pedido para a pesquisa

 

 

WHERE IDPEDIDO =1234456

Compartilhar este post


Link para o post
Compartilhar em outros sites


SELECT

*

FROM condominio AS c # c é o apelido (ALIAS) da tabela condominio

JOIN pedido AS p # p é o apelido (ALIAS) da tabela pedido

ON p.idcondominio = c.idcondominio # note que aqui foram utilizados os apelidos (ALIASES) para identificar as tabelas

WHERE

p.idpedido = x # novamente o apelido (ALIAS) e como o Motta disse, x é uma variável, por exemplo: 1234456

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mota e lokaodomau, obrigado por responde.

 

Poderiam me auxiliar só mais um pouco...

 

ESTA É A CONSULTA QUE ESTOU FAZENDO ($sql = "SELECT * FROM relatoriofinal WHERE ocorrencia_eletrica LIKE '-%' ORDER BY id DESC";)
realizei como falaram, conforme abaixo..
SELECT * FROM clientes AS c
JOIN relatoriofinal AS r
ON r.idcliente = c.nomecliente WHERE
r.id = x
Porém não consegui coloc-la para funcionar, poderiam me auxiliar mais um pouco?
Queria que ao invás de aparecer o id co cliente aparecesse o nome dele no lugar, tentei, mas nao consegui, acredto que tenha algo a ver com a consulta que estou realizando de forma errada...
obs, tenho mais campos para puxar do banco, como faria para puxa-los?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode escolher o campo que quiser, assim:

SELECT campo1, campo2, campo3......campoN FROM tabela

Se quiser campos de tabelas diferentes, tem que dizer de qual tabela o campo pertence:

SELECT t1.campo1, t2.campo1, t2.campo2...... FROMO tabela1 AS t1
JOIN tabela2 AS t2 ON t1.id = t2.id
WHERE ........

Olhe aqui, qualquer dúvida, volte a postar -> http://www.w3schools.com/sql/sql_join_inner.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Itlpps, obrigado por responder...

 

Esta questão entendi tranquilamente, graças ao auxilio dado por vocês, pois confesso que antes me compicava rs

 

a minha briga é adaptar esta forma de trabalhar ao meu select atual que postei acima, pois conforme fiz, (modelo abaixo);

 

$sql = "SELECT * FROM clientes AS c JOIN relatoriofinal AS r

ON r.idcliente = c.nomecliente WHERE ocorrencia_eletrica LIKE '-%' ORDER BY id DESC";
Ele me ostra página em branco não me mostrando resultado algum, nem de erro.. =/
Se puder me auxiliar agradeço,
Obrigado de verdade

agora consegui ver o erro...rs

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/qualytratus.com.br/web/sistema/administrador.php on line 187
linha 187, sera...
$total_de_registros_da_pagina = mysql_num_rows($resultado);

to conseguindo rs

 

Assim q conseguir, posto aqui ou qlq dificuldade...

Compartilhar este post


Link para o post
Compartilhar em outros sites
$sql = "SELECT * FROM clientes AS c JOIN relatoriofinal AS rON r.idcliente = c.nomecliente WHERE ocorrencia_eletrica LIKE '-%' ORDER BY id DESC";

Veja que você está comparando r.idcliente com c.nomecliente.

No JOIN, se usa chave primaria de uma tabela (no caso c.idcliente) como a chave estrangeira da outra tabela (r.idcliente).

 

E também, não está especificado de qual tabela o campo "ocorrencia_eletrica" e "id" pertence.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Itlpps, obrigado mais uma vez.. eu sinto que o caminho é o certo, pois parou de dar erro rs

 

Porém ele nao esta puxando os resultados,

 

vou postar abaixo, é um script pequeno, o select que trará todo o diferencial... se puder me auxiliar agradeço...

<?
include "conecta.php";

$sql = "SELECT * FROM clientes AS c JOIN relatoriofinal AS r ON r.idcliente = c.nomecliente WHERE r.ocorrencia_eletrica LIKE '-%' ORDER BY r.id DESC";

$resultado = mysql_query($sql)
or die ("Não Localizado");

$conta = mysql_num_rows($resultado);

while ($x=mysql_fetch_array($resultado)) {

        echo"
<table border='0' width='100%' align='center' style='border-width:5; border-color:cccccc; border-style:solid; margin-bottom:5pt;' cellpadding='0' cellspacing='0'>
        <tr>
            <td width='100%' height='10px' valign='middle' bgcolor='#F1F3F8'>
                <p align='center' style='line-height:120%; margin-top:5px; margin-bottom:5px; '><span class='tit-vermelho' style='font-size:10pt;'><font face='Verdana' color='#006699'><b>ID: $x[id]  /  CLIENTE: $x[idcliente]  /  PISCINA: $x[idpiscinaespelho]  /  OCORRÊNCIA: <font color='#FF0000'>$x[ocorrencia_eletrica]</font>  /  FUNCIONÁRIO: $x[usuario]  -  <span style='font-size:10pt;'><a href='editarcadastro.php?id=$x[id]' target='_blank'><font face='Verdana' color='#009900'>VERIFICAR</font></a></span>
  </b></font></span></p>
            </td>
        </tr>
    </table>
	";
			}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

c.nomecliente é o ID dele?

 

Tenta assim:

"SELECT * FROM clientes AS c JOIN relatoriofinal AS r ON r.idcliente = c.idcliente"

Se trazer algo, o problema é no WHERE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Itlpps,

 

muito obrigado, na realidade eu que fiz a confusão amigo.. acabei de ver e corrigir... o nome do campo estava diferente... o menino me enviou diferente...

 

desta forma funcionou...

 

$sql = "SELECT * FROM clientes AS c JOIN relatoriofinal AS r ON r.idcliente = c.codigo WHERE r.ocorrencia_eletrica LIKE '-%' ORDER BY r.id DESC";

 

Só uma unica duvida, preciso relacionar uma terceira tabela...

 

no meu modo de pensar seria assim, mas nao funciou... poderia me auxiliar, ó mais nesta e prometo q parei rs

 

$sql = "SELECT * FROM clientes AS c JOIN relatoriofinal AS r ON r.idcliente = c.codigo
piscinasespelhos AS p JOIN relatoriofinal AS r ON r.idpiscinaespelho = p.id
WHERE r.ocorrencia_eletrica LIKE '-%' ORDER BY r.id DESC";
desde ja, obrigado,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase isso, Jovem :)

 

Fica assim, um JOIN com 3 tabelas ou mais:

SELECT * FROM clientes AS c 
JOIN relatoriofinal AS r ON r.idcliente = c.codigo
JOIN piscinasespelhos AS p ON r.idpiscinaespelho = p.id
WHERE r.ocorrencia_eletrica LIKE '-%' ORDER BY r.id DESC

hehe

Normal ter dúvidas, fique a vontade pra perguntar, ajudo no possível :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Itlpps, fiz assim... deu certinho, me baseei no seu rs

 

$sql = "SELECT * FROM clientes AS c JOIN relatoriofinal AS r ON r.idcliente = c.codigo
JOIN piscinasespelhos AS p ON r.idpiscinaespelho = p.idp
WHERE r.alimentacaodeagua LIKE 'S%'";
Pode dar como finalizado e muito obrigado de verdade, me ajudou muito... agora vou pro outro tópico aprender um pouco mais kkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom que deu certo :D

 

Marca a resposta que mais lhe foi útil como resolvido, para encerrar o tópico!

E de pontos de reputação :p

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.