Junior
Wat zijn subqueries in SQL?
sobes.tech AI
Antwoord van AI
Een subquery (of geneste query) in SQL is een SELECT-query die binnen een andere SQL-instructie (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE) is ingebed. De subquery wordt eerst uitgevoerd en het resultaat wordt gebruikt door de externe query.
-
Gebruik:
- In de
WHERE-clausule om gegevens te filteren. - In de
FROM-clausule als een virtuele tabel (afgeleide tabel). - In de
SELECT-clausule om geaggregeerde of gerelateerde gegevens weer te geven (scalare subquery). - Met de operators
IN,EXISTS,ANY,ALL.
- In de
-
Voordelen:
- Maakt het mogelijk om complexe gegevensopvragingen uit te voeren.
- Verbeteren de leesbaarheid van queries in vergelijking met complexe joins.
- Kan worden gebruikt als gegevensbron.
-
Types:
- Scalair: Geeft één waarde terug (één rij en één kolom).
- Meerdere rijen: Geeft één kolom en meerdere rijen terug. Gebruikt met
IN,ANY,ALL. - Meerdere kolommen: Geeft meerdere kolommen terug. Wordt zelden gebruikt.
- Gecorreleerd: Afhankelijk van de externe query en wordt uitgevoerd voor elke rij van de externe query.
Voorbeeld van gebruik in WHERE:
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Voorbeeld van gebruik in 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;