MySQL MariaDB

Join esterno di MySQL

Join esterno di MySQL

MySQL fornisce molti comandi, necessari durante la gestione di un database. Ad esempio, spesso abbiamo bisogno di ottenere alcuni dati da tabelle diverse in base a determinate condizioni. MySQL fornisce quindi diversi tipi di join per ottenere i risultati desiderati. Impariamo LEFT JOIN E RIGHT JOIN di MySQL.

Non esiste un'istruzione come FULL OUTER JOIN in SQL, ma possiamo usare un semplice JOIN per ottenere gli stessi risultati o semplicemente usando un'istruzione SELECT su due tabelle diverse.

Altrimenti, MySQL fornisce SINISTRA UNISCI e ISCRIVITI A DESTRA per ottenere rispettivamente i record o le righe dalla tabella destra o sinistra. Proviamo un paio di esempi diversi per ottenere i risultati desiderati utilizzando join appropriati.

Esempi

Prima di iniziare a imparare l'uso di LEFT e RIGHT JOIN. Impareremo come ottenere tutti i dati da entrambe le tabelle (comuni o non comuni) utilizzando la semplice istruzione SELECT e utilizzando CROSS JOIN con l'istruzione SELECT. Per prima cosa, proviamo a ottenere tutti i dati da entrambe le tabelle utilizzando l'istruzione SELECT.

Ad esempio, ci sono 2 tabelle che abbiamo ottenuto con il nome dell'autore e dei libri.

libri DESC;

autori DESC;

Se vogliamo ottenere tutte le colonne da entrambe le tabelle. La query SELECT verrà utilizzata in questo modo:

SELEZIONA * DA libri, autori;

Come puoi vedere, abbiamo tutte le colonne di entrambe le tabelle senza nemmeno fornire una condizione.

Se usiamo la clausola JOIN o CROSS JOIN, entrambe ci porteranno gli stessi risultati. Per esempio:

SELEZIONA * DA libri UNISCITI agli autori;

Ora, proviamo ad applicare il CROSS JOIN:

SELECT * FROM libri CROSS JOIN autori;

Come puoi vedere, tutte queste domande ci stanno portando gli stessi risultati.

Tuttavia, non è bene avere tutte le colonne in una forma così astratta. Quindi, per ottenere alcune colonne specifiche dalla tabella di sinistra o di destra, ci sono due modi in cui puoi procedere; un modo è usare i nomi delle colonne usando le istruzioni SELECT o usando i join che si adattano alle tue esigenze.

Bene, ora andiamo avanti per capire LEFT JOIN e RIGHT JOIN.

SINISTRA UNISCI

Supponiamo di voler ottenere alcune colonne specifiche che provengono dalla tabella libri o comuni tra la tabella libri e autori, in base a una condizione, la condizione è effettivamente fornita confrontando due tabelle diverse. Ad esempio, vogliamo unire due tabelle, libri e autori in cui l'ID del libro è uguale all'ID dell'autore. Possiamo aspettarci un tale risultato usando LEFT Join con l'istruzione SELECT; SELECT query con i nomi delle colonne che vuoi ottenere dalla tabella dei libri o dagli autori. La query SELECT con LEFT JOIN e la condizione sarebbe così:

SELEZIONA libri.nome_libro, libri.book_id, autori.id_autore,
autori.autore_fname, autori.nome_autore
DA libri
LEFT JOIN autori
SUI libri.book_id = autori.id_autore;

Poiché abbiamo menzionato la tabella libri sul lato sinistro, il join otterrà l'ID di una riga dalla tabella libri e cercherà lo stesso numero ID nella tabella dell'autore. Se trova lo stesso numero ID, mostrerà anche le colonne fornite dalla tabella dell'autore. Altrimenti, mostrerà NULL nelle colonne della tabella dell'autore. Eseguiamo questa query e assistiamo ai risultati.

Come puoi vedere, abbiamo le righe di entrambe le tabelle in cui l'ID della tabella dei libri è uguale all'ID della tabella dell'autore. Nell'ultima riga, possiamo anche vedere che non c'è il numero ID 4 nella tabella dell'autore, quindi ha restituito NULL contro di esso.

ISCRIVITI A DESTRA

Allo stesso modo, se vogliamo ottenere dei dati, sia dalla tabella dell'autore che comuni tra i libri e la tabella dell'autore, in base ad alcune condizioni, questo tipo di risultati ci si può aspettare usando la RIGHT join e la clausola SELECT. La query SELECT con RIGHT JOIN e condizione sarebbe simile a questa:

SELEZIONA libri.nome_libro, libri.book_id, autori.id_autore,
autori.autore_fname, autori.nome_autore
DA libri
RIGHT JOIN autori
SUI libri.book_id = autori.id_autore;

Questa volta, sappiamo che la tabella degli autori è sul lato destro, quindi il join otterrà l'ID di una riga dalla tabella dell'autore e cercherà lo stesso numero ID nella tabella del libro. Se trova lo stesso numero ID, mostrerà le colonne fornite dalla tabella dei libri. L'esecuzione della query risulterebbe in questo:

Come puoi vedere, abbiamo le righe di entrambe le tabelle in cui l'ID dell'autore è uguale all'ID del libro. Sappiamo che c'era un quarto libro nella tabella dei libri, anche se non l'abbiamo preso, questo è dovuto al RIGHT JOIN.

Quindi, ecco come funzionano davvero LEFT JOIN e RIGHT JOIN.

Conclusione

Abbiamo imparato e compreso CROSS, LEFT e RIGHT JOIN, oltre ad aver imparato a usarli per ottenere i risultati desiderati in MySQL. Abbiamo anche provato un paio di esempi diversi di JOINS per comprendere i concetti in modo migliore e profondo. Quindi continua a visitare il nostro sito web linuxhint.com per contenuti più utili come questo.

Come modificare il puntatore del mouse e le dimensioni, il colore e lo schema del cursore su Windows 10
Il puntatore del mouse e il cursore in Windows 10 sono aspetti molto importanti del sistema operativo. Questo si può dire anche per altri sistemi oper...
Motori di gioco gratuiti e open source per lo sviluppo di giochi Linux
Questo articolo tratterà un elenco di motori di gioco gratuiti e open source che possono essere utilizzati per lo sviluppo di giochi 2D e 3D su Linux....
Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...