sql >> Databáze >  >> RDS >> Oracle

SQL dotaz k nalezení chybějících řádků mezi dvěma souvisejícími tabulkami

SELECT A.ABC_ID, A.VAL FROM A WHERE NOT EXISTS 
   (SELECT * FROM B WHERE B.ABC_ID = A.ABC_ID AND B.VAL = A.VAL)

nebo

SELECT A.ABC_ID, A.VAL FROM A WHERE VAL NOT IN 
    (SELECT VAL FROM B WHERE B.ABC_ID = A.ABC_ID)

nebo

SELECT A.ABC_ID, A.VAL LEFT OUTER JOIN B 
    ON A.ABC_ID = B.ABC_ID AND A.VAL = B.VAL FROM A WHERE B.VAL IS NULL

Upozorňujeme, že tyto dotazy vůbec nevyžadují, aby ABC_ID bylo v tabulce B. Myslím, že to dělá, co chcete.



  1. mysqli_stmt::bind_result():Počet proměnných vazby neodpovídá počtu polí v připraveném příkazu

  2. MariaDB GROUP_CONCAT()

  3. Rozdělte data sloupců oddělených čárkami do dalších sloupců

  4. Seskupte výsledky dotazů podle měsíce a roku v postgresql