# 6: Subqueries

Stel dat je de naam van het oudste medewerker, wilt laten afdrukken, dan kan dat met een subquery.

Die gaat als volgt:

```sql
select Firstname, Lastname 
from Employee
where BirthDate = (
    select min(BirthDate) 
    from Employee);
```

Als deze query wordt uitgevoerd dan wordt eerst de subquery (de query tussen haakjes, dus:

```sql
select min(BirthDate) 
from Employee;
```

Als je die uitvoert verschrijt er: `1947-09-19 00:00:00`

Daarna wordt de hoofdquery uitgevoerd, en in plaats van de subquery wordt `1947-09-19 00:00:00` ingevuld.

Er staat dan dus eigenlijk:

```sql
select Firstname, Lastname 
from Employee
where BirthDate = "1947-09-19 00:00:00";
```

### Subquery met IN

Stel dat je al de tracknamen van alle leerlingen die een boek hebben gereserveerd wilt afdrukken.

Dan kan dat door een join te gebruiken:

```sql
select * 
from InvoiceLine as I, Track as T 
where I.TrackID = T.TrackID;
```

> Let op dat hier met `AS` een afkorting maken voor de join!

Maar dit kan dus ook met een subquery:

```sql
Select *
from InvoiceLine
Where TrackID IN (
    select TrackID
    from Track);
```

Omdat er nu uit een lijstje gekozen worden moet je IN gebruiken, en geen =

Je mag alleen = gebruiken als je er zeker van bent dat het resultaat van de subquery maar één exemplaar oplevert!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://metis-montessori-lyceum.gitbook.io/informatica/modules/databases/6-subqueries.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
