Poddotaz

Poddotaz je takový dotaz na databázi, který je umístěn uvnitř jiného „vnějšího“ dotazu a výsledky z něj se používají v nějaké podmínce v tom vnějším dotazu. Poddotazy podporuje většina etablovaných databázových systémů, MSSQL, MySQL (od verze 4.1), Oracle, Sybase a další.

Poddotaz je nejčastěji příkaz SELECT a poskytuje hodnoty do porovnávací podmínky (klauzuli WHERE) pro nadřazený dotaz (jiné části dotazu jen velmi zřídka). Používá se tam, kde není vhodné nebo možné použít agregační funkce nebo (pro dodržení kompatibility) uložené procedury.

Příklad 1:

SELECT * FROM tabulka1 WHERE sloupec1=(SELECT sloupec2 FROM tabulka2 WHERE podmínka);

Příklad 2:

DELETE FROM tabulka1 WHERE sloupec1 IN (SELECT sloupec2 FROM tabulka2 WHERE podmínka);

Příklad 3:

UPDATE tabulka1 SET sloupec1=hodnota1 WHERE EXISTS(SELECT sloupec2 FROM tabulka2 WHERE podmínka);

Externí odkazy