Capitolo 10. Le giunzioni rivisitate
Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com
A questo punto dovresti essere già a tuo agio con il concetto di join interno, che ho introdotto nel Capitolo 5. Questo capitolo si concentra su altri modi in cui è possibile unire le tabelle, tra cui l'outer join e il cross join.
Giunti esterni
In tutti gli esempi che finora hanno incluso più tabelle, non ci siamo preoccupati del fatto che le condizioni di join potessero non trovare corrispondenze per tutte le righe delle tabelle. Ad esempio, la tabella inventory contiene una riga per ogni film disponibile per il noleggio, ma delle 1.000 righe della tabella film, solo 958 hanno una o più righe nella tabella inventory. Gli altri 42 film non sono disponibili per il noleggio (forse si tratta di nuove uscite che arriveranno tra qualche giorno), quindi gli ID di questi film non possono essere trovati nella tabella inventory. La seguente query conta il numero di copie disponibili di ogni film unendo le due tabelle:
mysql> SELECT f.film_id, f.title, count(*) num_copies -> FROM film f -> INNER JOIN inventory i -> ON f.film_id = i.film_id -> GROUP BY f.film_id, f.title; +---------+-----------------------------+------------+ | film_id | title | num_copies | +---------+-----------------------------+------------+ | 1 | ACADEMY DINOSAUR | 8 | ...