Join di 2 Tabelle
Abbiamo attirato l'attenzione di un'azienda che possiede un piccolo negozio online. Dispongono di 2 tabelle correlate tra loro. La prima tabella contiene informazioni sui prodotti venduti nel negozio online.
Ecco come si presenta la tabella product
:
La seconda tabella contiene le categorie di prodotti presenti sul sito, insieme a una breve descrizione per ciascuna categoria.
Ecco come si presenta la tabella category
:
Il nostro primo compito è unire queste due tabelle per scoprire quanti prodotti ci sono in ciascuna categoria. Utilizzeremo un'istruzione JOIN
per raggiungere questo obiettivo.
Prima di affrontare il compito, vediamo cos'è un'istruzione JOIN
e come funziona.
Per unire due tabelle, è necessario che condividano una colonna in comune. Vediamo come funziona JOIN
utilizzando le tabelle employees
e department
. La loro colonna in comune è employees.department
e departments.name
.
Nota
Quando si scrivono colonne provenienti da queste tabelle, iniziare con il nome della tabella, aggiungere un punto e poi il nome della colonna. Questo aiuta a mantenere il codice chiaro, specialmente quando le tabelle hanno colonne con lo stesso nome. Indica a SQL esattamente a quale tabella e colonna ci si riferisce.
Ecco il compito di recuperare il salario totale per i dipendenti in ciascun tipo di dipartimento (tech
/non-tech
).
La query per svolgere questo compito sarà la seguente:
1234SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Analizziamo come abbiamo utilizzato JOIN
nella nostra query:
- Nella parte
SELECT
, elenchiamo le colonne desiderate da entrambe le tabelle, assicurandoci di includere il nome della tabella per chiarezza; - Nella parte
JOIN
, specifichiamo la tabella da unire e la colonna comune che le collega. In questo caso, sonoemployees.department
edepartment.name
; - Successivamente, raggruppiamo i dati per
type
per calcolare il salario totale utilizzando la funzioneSUM()
.
Se questo sembra complesso, ecco una semplice sintassi per utilizzare JOIN
:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Nota
A differenza della clausola
UNION
, l'istruzioneJOIN
consente di combinare intere tabelle, non solo le colonne che hanno in comune. Inoltre, conJOIN
non è necessario utilizzare sottoquery come avviene conUNION
.
Swipe to start coding
È necessario unire le due tabelle: category
e product
. Le colonne comuni tra queste due tabelle sono product.category_id
e category.id
.
Il tuo compito è trovare la quantità totale di prodotti in ciascuna categoria. Per farlo, devi calcolare la somma della colonna product.amount
.
Utilizza l'alias total_amount
per questa colonna.
Alla fine della query, ordina il risultato in base alla colonna total_amount
in ordine crescente.
Nella risposta, dovresti avere 2 colonne: category.name
e total.amount
.
Istruzioni sintetiche
- Recupera la colonna
category.name
e la somma della colonnaproduct.amount
dalla tabellaproduct
. - Assegna l'alias
total_amount
alla seconda colonna. - Unisci la tabella
category
utilizzando un'istruzioneJOIN
. - Collega le tabelle sulla colonna comune
product.category_id = category.id
. - Raggruppa i risultati per
category.name
. - Ordina i risultati per
total_amount
.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
What are the different types of JOINs in SQL?
Can you explain how to join the product and category tables using SQL?
How do I count the number of products in each category using a JOIN?
Awesome!
Completion rate improved to 4
Join di 2 Tabelle
Scorri per mostrare il menu
Abbiamo attirato l'attenzione di un'azienda che possiede un piccolo negozio online. Dispongono di 2 tabelle correlate tra loro. La prima tabella contiene informazioni sui prodotti venduti nel negozio online.
Ecco come si presenta la tabella product
:
La seconda tabella contiene le categorie di prodotti presenti sul sito, insieme a una breve descrizione per ciascuna categoria.
Ecco come si presenta la tabella category
:
Il nostro primo compito è unire queste due tabelle per scoprire quanti prodotti ci sono in ciascuna categoria. Utilizzeremo un'istruzione JOIN
per raggiungere questo obiettivo.
Prima di affrontare il compito, vediamo cos'è un'istruzione JOIN
e come funziona.
Per unire due tabelle, è necessario che condividano una colonna in comune. Vediamo come funziona JOIN
utilizzando le tabelle employees
e department
. La loro colonna in comune è employees.department
e departments.name
.
Nota
Quando si scrivono colonne provenienti da queste tabelle, iniziare con il nome della tabella, aggiungere un punto e poi il nome della colonna. Questo aiuta a mantenere il codice chiaro, specialmente quando le tabelle hanno colonne con lo stesso nome. Indica a SQL esattamente a quale tabella e colonna ci si riferisce.
Ecco il compito di recuperare il salario totale per i dipendenti in ciascun tipo di dipartimento (tech
/non-tech
).
La query per svolgere questo compito sarà la seguente:
1234SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Analizziamo come abbiamo utilizzato JOIN
nella nostra query:
- Nella parte
SELECT
, elenchiamo le colonne desiderate da entrambe le tabelle, assicurandoci di includere il nome della tabella per chiarezza; - Nella parte
JOIN
, specifichiamo la tabella da unire e la colonna comune che le collega. In questo caso, sonoemployees.department
edepartment.name
; - Successivamente, raggruppiamo i dati per
type
per calcolare il salario totale utilizzando la funzioneSUM()
.
Se questo sembra complesso, ecco una semplice sintassi per utilizzare JOIN
:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Nota
A differenza della clausola
UNION
, l'istruzioneJOIN
consente di combinare intere tabelle, non solo le colonne che hanno in comune. Inoltre, conJOIN
non è necessario utilizzare sottoquery come avviene conUNION
.
Swipe to start coding
È necessario unire le due tabelle: category
e product
. Le colonne comuni tra queste due tabelle sono product.category_id
e category.id
.
Il tuo compito è trovare la quantità totale di prodotti in ciascuna categoria. Per farlo, devi calcolare la somma della colonna product.amount
.
Utilizza l'alias total_amount
per questa colonna.
Alla fine della query, ordina il risultato in base alla colonna total_amount
in ordine crescente.
Nella risposta, dovresti avere 2 colonne: category.name
e total.amount
.
Istruzioni sintetiche
- Recupera la colonna
category.name
e la somma della colonnaproduct.amount
dalla tabellaproduct
. - Assegna l'alias
total_amount
alla seconda colonna. - Unisci la tabella
category
utilizzando un'istruzioneJOIN
. - Collega le tabelle sulla colonna comune
product.category_id = category.id
. - Raggruppa i risultati per
category.name
. - Ordina i risultati per
total_amount
.
Soluzione
Grazie per i tuoi commenti!
Awesome!
Completion rate improved to 4single