SQL SELECT IN SELECT

In SQL è possibile inserire una query SQL all'interno di un'altra query nota come subquery. In una sottoquery, il risultato della query esterna dipende dal set di risultati della sottoquery interna. Per esempio:

        SELECT *
            FROM customers
            WHERE age = (
                SELECT MIN(age)
                    FROM customers
            );
    
        SELECT customer_id, name
            FROM customers
            WHERE customer_id IN (
                SELECT customer_id
                    FROM orders
            );
    

SQL SUBQUERY E JOIN

In alcuni casi, possiamo ottenere lo stesso set di risultato utilizzando una sottoquery e la clausola JOIN. Per esempio il set di risultati di questa query:

        SELECT DISTINCT customers.customer_id, customers.name
            FROM customers INNER JOIN orders
                ON (customers.customer_id = orders.customer_id)
        ORDER BY customers.customer_id;
    

sarà lo stesso di questa query:

        SELECT customer_id, name
            FROM customers
            WHERE customer_id IN (
                SELECT customer_id
                    FROM orders
            );