Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Localizando/procurando valores ausentes no MySQL


Presumo que você tenha uma tabela de fatura - FATURAS. Você pode tentar:
 SELECT invoice_id FROM INVOICES invoice
 WHERE NOT EXISTS (SELECT * FROM SALES s WHERE invoice.invoice_id = s.invoice_id)

EDIT:Se você não tiver a tabela INVOICES, talvez seja necessário retirar todas as faturas antes de verificar se há alguma lacuna.

SELECT DISTINCT invoice_id FROM SALES ORDER POR invoice_id ASCSELECT MAX(invoice_id) FROM SALES

então, por php:
for ($i = 1; $i < $max_invoice_id; $i++)
{
  if (!in_array($i, $all_invoice_id))
  {
    $gapId[] = $i;
  }
}