Join SQL su più condizioni

Join Sql Su Piu Condizioni



Una delle caratteristiche più diffuse dei database relazionali sono i join. I join SQL si riferiscono al processo di combinazione dei dati di due o più tabelle in un unico set di risultati basato su funzionalità o colonne standard.

Unire le tabelle ci consente di recuperare i dati archiviati su più tabelle in un'unica query, il che lo rende un potente strumento per l'analisi e il reporting dei dati.







In questo tutorial scopriremo come eseguire i join SQL su più condizioni. Impareremo a utilizzare gli operatori logici 'AND' e 'OR' per unire i dati in base a più condizioni.



Join SQL su più condizioni

Possiamo specificare più condizioni utilizzando gli operatori AND o OR in SQL. Questi operatori ci consentono di definire un insieme di espressioni booleane che vengono quindi valutate e confrontate con l'insieme risultante.



Utilizziamo l'operatore AND per assicurarci che tutte le condizioni specificate siano vere. Se anche una sola delle condizioni non è vera, l'intera espressione viene resa falsa. Ciò rende l'operatore AND uno strumento eccezionale per il filtraggio estremo dei dati.





D'altra parte, usiamo l'operatore OR quando abbiamo bisogno che almeno una delle condizioni sia vera. Ciò lo rende un metodo di filtraggio dei dati più 'libero' in quanto il record risultante deve soddisfare solo almeno un parametro definito.

La funzionalità degli operatori AND e OR non cambia nemmeno nel caso di join SQL.



Esempio di join multipli SQL

Per capire come lavorare con i join su più condizioni, è meglio lavorare con un esempio.

Per questa dimostrazione, utilizziamo il database Sakila, sviluppato per esplorare tutte le funzionalità di SQL.

Supponiamo di voler recuperare i dati dalle tabelle film e film_actor. Innanzitutto, vogliamo trovare tutti gli attori che hanno recitato nel film classificati PG o PG-13 e con una lunghezza compresa tra 90 e 120.

In tale scenario, dobbiamo eseguire un join con più condizioni come mostrato di seguito:

SELEZIONA attore.nome, attore.cognome, film.titolo, film.anno_di_uscita, film.classificazione
A PARTIRE DAL attore
ISCRIVITI a film_actor SU actor.actor_id = film_actor.actor_id
UNISCITI al film SU film_actor.film_id = film.film_id
DOVE film.lunghezza TRA 90 E 120
E valutazione del film IN ( 'PG' , 'PG-13' ) ;


Come puoi vedere dalla query precedente, diciamo a SQL di eseguire un join tra l'attore e le tabelle film_actor in base alla colonna attore_id. Eseguiamo anche un join tra le tabelle film_actor e film utilizzando la colonna film_id. Ci assicuriamo inoltre di definire due condizioni utilizzando la clausola WHERE per filtrare la tabella dei risultati in base all'anno di uscita e alla durata del film.

La tabella risultante è la seguente:


Possiamo anche specificare le condizioni multiple in base all'operatore OR come mostrato nella seguente query di esempio:

SELEZIONA film.titolo, film.noleggio_tariffa, categoria.nome
A PARTIRE DAL film
ISCRIVITI a film_category SU film.film_id = film_category.film_id
ISCRIVITI alla categoria SU film_category.category_id = category.category_id
WHERE categoria.nome IN ( 'Azione' , 'Commedia' )
AND film.rental_rate > 3.00 ;


La tabella risultante è la seguente:

Conclusione

Questa esercitazione ha esplorato come lavorare con i join SQL in base a più condizioni utilizzando gli operatori AND e OR. Ciò fornisce un filtro dei dati più granulare.