Junior
Co jsou poddotazy v SQL?
sobes.tech AI
Odpověď od AI
Poddotaz (nebo vnořený dotaz) v SQL je dotaz SELECT, který je vložen uvnitř jiné SQL instrukce (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). Poddotaz se provádí jako první a jeho výsledek je použit externím dotazem.
-
Použití:
- V klauzuli
WHEREpro filtrování dat. - V klauzuli
FROMjako virtuální tabulka (odvozená tabulka). - V klauzuli
SELECTpro zobrazení agregovaných nebo souvisejících dat (skalární poddotaz). - S operátory
IN,EXISTS,ANY,ALL.
- V klauzuli
-
Výhody:
- Umožňují provádět složité výběry dat.
- Zlepšují čitelnost dotazů ve srovnání s složitými spojeními.
- Mohou být použity jako zdroj dat.
-
Typy:
- Skalární: Vrací jednu hodnotu (jeden řádek a jeden sloupec).
- Víceřádkové: Vrací jeden sloupec a několik řádků. Používá se s
IN,ANY,ALL. - Více sloupcové: Vrací více sloupců. Rarita.
- Korelované: Závisí na vnějším dotazu a provádí se pro každý řádek vnějšího dotazu.
Příklad použití v WHERE:
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Příklad použití v FROM:
SELECT
customer_name,
total_orders
FROM (
SELECT
c.customer_name,
COUNT(o.order_id) AS total_orders
FROM
customers c
JOIN
orders o ON c.customer_id = o.customer_id
GROUP BY
c.customer_name
) AS customer_order_counts
WHERE
total_orders > 10;