Join tabelle

pippuccio76

Utente Attivo
21 Lug 2013
27
1
3
Salve , non sono molto pratico di join , spiego il problema ho un sito di annunci ,selezionando una provincia devo recuperare vari valori dalle tabelle .Le tabelle sono composte così :

-province , qui mi serve l'id provincia per recuperare i comuni
-comuni (vedi sopra)
-annunci , qui ho un campo iduser (devo recuperare tutti i campi)
-user , ha il campo comune

Come creo la join?
 
Ciao, prova così

Select ann.*
From province prov
Join comuni com on prov.id = com.prov_id
Join user on user.com_id = com.id
Join annunci ann on ann.user_id = user.id
Where provincia = quella selezionata
 
Ciao, prova così

Select ann.*
From province prov
Join comuni com on prov.id = com.prov_id
Join user on user.com_id = com.id
Join annunci ann on ann.user_id = user.id
Where provincia = quella selezionata

grazie mille funziona , puoi spiegarmi il meccanismo per entrare nella logica...

Provo a spiegare i miei dubbi :

-selezionitutti i campidi annunci (ann.*) e qui ci siamo ....
- poi parti con FROM province , qui iniziano i dubbi sul perchè hai messo proprio province ?
 
Ultima modifica:
Ho seguito l'ordine delle informazioni che hai esposto nel primo post; non c'è una spiegazione più tecnica; sarei potuto partire da qualsiasi tabella pur rispettando le dichiarazioni di associazione

Alessandro
 
solo un pensiero,
è possibile che le join costringano ad una lettura sequenziale delle tabelle,
andrebbero quindi analizzate con appositi tools per la verifica del loro comportamento,
parliamo però di problemi che potrebbero verificarsi con "mega" tabelle
quindi tornando all'ordine con cui creare i legami,
si dovrebbe avere un occhio di riguardo per privilegiare quelli che coinvolgono le tabelle che, si sanno, essere le più "vuote"
 

Discussioni simili