Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Finden/Suchen nach fehlenden Werten in MySQL

Ich nehme an, Sie haben eine Rechnungstabelle - RECHNUNGEN. Sie können Folgendes versuchen:

 SELECT invoice_id FROM INVOICES invoice
 WHERE NOT EXISTS (SELECT * FROM SALES s WHERE invoice.invoice_id = s.invoice_id)

BEARBEITEN:Wenn Sie die INVOICES-Tabelle nicht haben, müssen Sie möglicherweise alle Rechnungen herausnehmen, bevor Sie prüfen, ob es eine Lücke gibt.

WÄHLEN SIE EINZIGARTIGE Rechnungs-ID AUS VERKAUFSAUFTRAG NACH Rechnungs-ID ASC AUSWÄHLEN SIE MAX(Rechnungs-ID) AUS VERKAUF

dann per php:

for ($i = 1; $i < $max_invoice_id; $i++)
{
  if (!in_array($i, $all_invoice_id))
  {
    $gapId[] = $i;
  }
}