x + null = null
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.priceh.quantidade) FROM avulsoHasProdutos h INNER JOIN produtos p ON h.produto=p.id WHERE h.avulso=a.id) > 0 , (SELECT SUM(p.priceh.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.
Discussão (1)
Carregando comentários...