Encontrar registros não coincidentes, ajuda para melhor consulta
Oi pessoas.. preciso de ajuda para tentar melhorar essa consulta..
Eu tenho uma tabela que registra todas vendas feitas.. e preciso encontrar os clientes que fizeram compra no mês passado, mas que ainda não compraram esse mês..
Por enquanto eu estou fazendo assim:
<?php
$u = mysql_query("SELECT id_cliente FROM tab_vendas WHERE data_venda BETWEEN '2017-03-01' AND '2017-03-31' GROUP BY id_cliente");
while($r = mysql_fetch_assoc($u)){
// Consulta se tem venda no mês atual:
$h = mysql_query("SELECT id_cliente,data_ultima_compra FROM tab_vendas
WHERE data_venda BETWEEN '2017-04-01' AND '2017-04-30' AND id_cliente=$r[id_cliente]");
// Se não encontrar resultados exibe o cliente
if (mysql_num_rows($h)==0) {
$z = mysql_fetch_assoc($h);
echo $z['id_cliente'].' - '.$z['data_ultima_compra'].'<br>';
}
}
?>
Essa consulta até funciona bem... mas quando eu pego uma tabela muito grande ela demora, e as vezes esgota o tempo do servidor.
Alguém tem alguma ideia de como posso melhorar isso?Discussão (11)
Carregando comentários...