sql >> Databáze >  >> RDS >> Mysql

Hledání/vyhledávání chybějících hodnot v MySQL

Předpokládám, že máte tabulku faktur - FAKTURY. Můžete zkusit:

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

EDIT:Pokud nemáte tabulku FAKTURY, možná budete muset vyjmout všechny faktury, než zkontrolujete, zda tam není nějaká mezera.

VYBERTE DISTINCT id_faktury Z PRODEJNÍ OBJEDNÁVKY PODLE id_faktury ASCSELECT MAX(id_faktury) Z PRODEJE

poté pomocí php:

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


  1. MYSQL - Vyberte pouze v případě, že řádek v LEFT JOIN není přítomen

  2. 2 způsoby, jak vrátit řádky, které obsahují pouze alfanumerické znaky v MariaDB

  3. Vazba parametrů na Oracle Dynamic SQL

  4. Jak předat pole řetězců v parametru SQL do klauzule IN v SQL