JOIN di base, parte 1
Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 43 di 72.
Finora abbiamo affrontato problemi relativi a una singola tabella. Ora esamineremo come gestire più tabelle.
Supponiamo di avere le seguenti tabelle:
corsi
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
docenti
| lecturer_id | nome |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
Il compito consiste nel presentare ogni corso con il nome del docente corrispondente.
Esistono due modi per ottenere questo risultato. Per ciascuna opzione, abbiniamo ogni riga di una tabella a una riga dell'altra. Verifichiamo una condizione che deve essere soddisfatta e, se lo è, combiniamo le due righe in una sola. Il risultato desiderato per entrambe le opzioni:
| course_id | lecturer_name |
|---|---|
| 1 | Jhonas |
| 2 | Jhonas |
| 3 | Malidos |
Opzione 1:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_idQui scriviamo due tabelle nella parola chiave FROM e, nella clausola WHERE, richiediamo che il lecturer_id di entrambi i record sia uguale. Nella clausola SELECT ora scriviamo table.column, così il database saprà da dove recuperare la colonna.
Opzione 2:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_idInvece di WHERE usiamo JOIN table ON condition
Questo tipo di join è chiamato anche inner join.
Sfida
FacileTabelle e colonne disponibili:
grades:course_id,student_id,gradestudents:id,name
Crea una query che recuperi student_name, course_id, student_id e grade in un'unica tabella. Ordina il risultato per voto in ordine crescente.
Provalo tu
-- Elenca le colonne richieste dall'esercizio, usando l'alias richiesto
SELECT ____
FROM students, grades
-- Mantieni solo le coppie di righe in cui entrambe le tabelle si riferiscono alla stessa persona
WHERE ____
ORDER BY gradeQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Altre parole chiave
La parola chiave INLa parola chiave BETWEENLa parola chiave LIKELa parola chiave ASRiepilogo - Modelli di telefoni cellulari2Condizioni
Basi delle condizioniLa parola chiave ANDLa parola chiave ORLa parola chiave NOTCombinare più condizioniParentesiValori booleani5Operazioni aritmetiche
Operatori matematiciColonne matematicheL’operazione moduloLa funzione ROUND()3Formato di restituzione specifico
Valori nullOrdinare i risultati Parte 1Ordinare i risultati Parte 2Riepilogo - Azienda di sicurezza informaticaLimitare il numero di recordRiepilogo - Fabbrica di veicoli6Sfide introduttive
Ripasso - Elezione parlamentareRipasso - Arresto di un criminale da parte della poliziaRipasso - Contenitore per bevande da barRipasso - Progetta nuove colonne9Tabelle multiple
JOIN di base, parte 1JOIN di base, parte 2Riepilogo - JOINSelf joinRiepilogo - Self joinUNIONSemplificare le query, parola chiave WITHRiepilogo - Query con WITHRiepilogo - Impresa edile immobiliare12Funzioni finestra, parte 2
Funzioni RANK e DENSE_RANKRipasso: RANK e DENSE_RANKFunzione NTILEFunzioni di aggregazioneCriteri ROWS e RANGEEsercitati da solo: Playground SQL