Dica rápida para escrever scripts SQL
Muitas vezes estamos testando uma query e comentamos uma parte, descomentamos outra, e quando vamos executá-la recebemos um erro por ter uma vírgula a mais no select, uma condição AND a mais no where, e isso nos faz perder tempo.
Então aqui trago uma dica bem rápida, relacionada a organização da query na hora que estamos testando ela em um SGBD.
Uma consulta comum que retorna alguns dados sobre carrinho produto e itens do carrinho, utilizando alguns filtros de valores e tendo um cupom preenchido:
SELECT
product.name,
product.value,
cartitem.quantity,
cart.userid
FROM
cart INNER JOIN cartitem ON cart.id = cartitem.cartid
INNER JOIN product ON cartitem.productid = product.id
WHERE
product.value > 50
AND cart.totalvalue > 100
AND cart.cupom IS NOT NULL
O problema que mostro aqui é quando comentamos cart.userid
no select ou a condição product.value > 50
ambas gerarão erro, pois no primeiro caso terá uma vírgula a mais no último campo do select, e no segundo caso uma condição AND sobrando na consulta.
Reescrevendo e melhorando a organização temos:
SELECT
product.name
,product.value
,cartitem.quantity
,cart.userid
FROM
cart
INNER JOIN cartitem ON cart.id = cartitem.cartid
INNER JOIN product ON cartitem.productid = product.id
WHERE 1=1
AND product.value > 50
AND cart.totalvalue > 100
AND cart.cupom IS NOT NULL
No SELECT temos uma mudança da vírgula para a posição inicial e no WHERE foi adicionada uma condição que sempre retornará verdadeira, apenas para auxiliar na organização, dessa forma se product.value > 50
for comentado a consulta continua funcionando.
Conclusão
Essa forma de organizar a consulta não é uma regra e não posso nem afirmar que é a melhor forma de organizá-la, mas é a forma que eu costumo usar e deixo de dica para você que talvez nunca pensou em escrever suas queries de uma forma diferente, ou nem tem uma forma definida de como organizá-la.