Ir para conteúdo

Arquivado

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

vinicius015

Select com comparação antes de expor resultados

Recommended Posts

Pessoal, bom dia! To com um problemnas a uns dias e ta me impedindo de entregar o sistema.

Vejam se podeem me ajudar...


ANtes de mais nada, explicarei, é um sistema e cadastro de vistorias diárias para piscinas.


Tenho um cadastro de clientes e tenho um cadastro de piscinas que ligo elas ao ID do cliente, certo?


Agora, a parte onde empaquei...


Tenho uma página dos cadastro das vistorias, que após dar submit enviará os dados a tabela RELATÓRIO FINAL, nesta página tenho um menu drop-down(suspenso/select) que puxa da tabela "piscinas" as piscinas com o id de referencia 20142014 (que também é o id de cadastro do cliente). Então no caso tenho assim....


TABELA - CLIENTES

ID - 20142014

NOME CLIENTE - Dona Maria


e tenho a TABELA PISCINAS

ID - 01

IDP - 20142014

NOME - PISCINA QUENTE


ID - 02

IDP - 20142014

NOME - PISCINA CRIANÇAS


Quando abre o menu drop-down(suspenso/select), ele me mostra:

PISCINA QUENTE

PISCINA CRIANÇAS


Uso esta consulta SQL para que ele abra os resultados para mim:

$sql = "SELECT idp, idcondominio, nomepiscinaespelho FROM piscinasespelhos WHERE idcondominio='$codigo'";


Só que ai, ela esta consultando a tabela das PISCINAS (nome verdadeiro "piscinasespelhos"), eu queria saber, de qual forma faria para que ele fizesse assim...


Antes de puxar as piscinas neste (menu dop-down/suspenso), ele consultasse na tabela RELATÓRIO FINAL se já existe a piscina cadastrada lá.


Quando abro a página de cadastro de vistoria, ele me mostra o nome da piscina, mas o valor que incluo na tabela é o do ID, no caso, um exemplo:

PISCINA QUENTE - 01, queria que ele comparasse.


PISCINA QUENTE, ID 01, este id já esta cadastrado na tabela RELATÓRIO FINAL no campo idpiscina no dia de hoje? Se SIM, ele sumiria do menu drop-down, se NÃO, ele mostraria o resultado neste menu.


No caso, a cada vistoria que faço, o sistema inclui e volta na página de vistoria, ai toda ves ele viria eliminando a PISCINA na qual já foi feita a Vistoria.


Desde já obrigado,


Se caso alguém quiser dar consultoria nao tem problema, estou precisando mesmo terminar isto que é de um amigo meu.


Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra não mostrar o que já existe... Bom, eu vou mostrar um exemplo com LEFT JOIN.

SELECT tb1.id, tb1.nome, tb2.id
FROM tabela1 AS tb1
LEFT JOIN tabela2 AS tb2
  ON tb2.id_tb1 = tb1.id
WHERE tb2.id IS NULL

Utilizo o LEFT JOIN com o relacionamento das tabelas, mas na cláusula WHERE, digo ao banco que quero ver só o que não teve relacionamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

LokaoDoMau... blza? Obrigado pela ajuda...

 

Seguinte, fiz como instruiu... Só que ele me retorna todos os resultados, quando incluo uma vistoria, e quando volta pra página de cadastro, ele não esta eliminando a piscina que já foi cadastrada.

 

Veja como ficou minha consulta sql...

 

$sql = "SELECT p.idp, p.idcondominio, p.nomepiscinaespelho, r.*
FROM piscinasespelhos AS p
LEFT JOIN relatoriofinal AS r
  ON r.idpiscinaespelho = p.idcondominio
WHERE (r.idpiscinaespelho IS NULL) AND p.idcondominio='$codigo'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai vai a resposta povo... vlw

$sql2 = "SELECT idp, idcondominio, nomepiscinaespelho
FROM piscinasespelhos
WHERE
idp NOT IN(
     SELECT idpiscinaespelho FROM relatoriofinal
     WHERE dataehora = CURDATE()
     )
AND
idcondominio='$codigo'";

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.