⊗pyPmDOGD 123 of 129 menu

Recupero di dati da tabelle correlate in Python

Facciamo una query che recuperi tutti gli utenti insieme alle loro città. Per questo servirà il comando LEFT JOIN:

La sua sintassi è la seguente:

SELECT campi FROM nome_tabella LEFT JOIN nome_tabella_correlata ON condizione_collegamento WHERE condizione_selezione

Analizziamo le singole parti della sintassi di questo comando.

Campi

Poiché la selezione avviene da più tabelle, selezionare tutti i campi con * non funzionerà. La seguente query selezionerà i campi solo dalla tabella principale, ma non da quella correlata:

SELECT *

Affinché i dati vengano selezionati da tutte le tabelle, è necessario specificare il nome della tabella prima di *:

SELECT users.*, cities.*

In alternativa, è possibile elencare i campi che ci servono specificando il nome della tabella prima di essi:

SELECT users.name, cities.name

Questi due metodi hanno un problema. Il fatto è che se i campi nelle tabelle hanno nomi identici, nell'array Python si verificherà un conflitto di nomi e vincerà solo un campo, mentre il secondo non sarà presente.

Per risolvere il problema, è necessario rinominare i nomi in conflitto tramite il comando as:

SELECT users.name, cities.name as city_name

Collegamento

Dopo il comando ON dobbiamo specificare i campi delle due tabelle attraverso i quali viene stabilito il collegamento. Nel nostro caso saranno il campo id della tabella delle città e il campo city_id della tabella degli utenti:

ON cities.id=users.city_id

Query

Alla fine, la query che recupererà gli utenti insieme alle loro città sarà la seguente:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

Problemi pratici

Supponiamo di avere una tabella con i prodotti e una tabella con le loro categorie. Scrivi una query che recuperi i nomi dei prodotti insieme alle loro categorie.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta