Ir para conteúdo

POWERED BY:

Arquivado

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

paulojuchem

x + null = null

Recommended Posts

Ola a todos. A algum tempo tenho observado uma coisa que esta aumentando consideravelmente o tamanho das querys que eu faco. Segue um exemplo:

 

SELECT SUM(a.valor + IF((SELECT SUM(p.price*h.quantidade) FROM avulsoHasProdutos h INNER JOIN produtos p ON h.produto=p.id WHERE h.avulso=a.id) > 0 , (SELECT SUM(p.price*h.quantidade) FROM avulsoHasProdutos h INNER JOIN produtos p ON h.produto=p.id WHERE h.avulso=a.id) ,0)) AS valorTotal FROM avulso a INNER JOIN entradas e WHERE e.id='$entradaId' AND (ADDTIME(a.regDate , a.regTime)) >= (ADDTIME(e.startDate,e.startTime))

 

p.price sao precos de produtos que talvez existam, quando os mesmos nao existem, ele retorna null, supondo que a.valor seja 10 e nao haja produtos, 10 + null = null, entao o if ali dentro previne que isso ocorra, mas reparem que eu preciso fazer a mesma query 2x, 1 para ver o valor, e se nao for null, outra para retornar o valor para query anterior.

 

Gostaria de saber se tem algum metodo mais eficiente para fazer isso.

Obrigado.

Paulo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

null é nada.

 

é impossível fazer qualquer manipulação ou verificação com nada (null)

 

 

por isso tem as palavras especiais

 

IS NULL

 

e

 

IS NOT NULL

 

para saber quando um valor da tabela é null ou não.

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.