sostituzione degli id con i nomi presenti in altra tabella

ciao

ho una tabella TAB_A contenente i seguenti campi:

data, idCittaPartenza, idCittaArrivo

poi ho un'altra tabella TAB_B che contiene i dati sulle cittą. una cosa del tipo:

idCitta, nomeCitta

chiaramente idCitta č chiave esterna in TAB_A!

io ho bisogno di fare una query che mostra il contenuto di TAB_A ma che sostituisca agli id (di partenza e arrivo) i nomi veri delle cittą specificati in TAB_B!

ho provato con un join ma chiaramente va bene per ottenere o il nome della cittą d'arrivo o di quella di partenza (non entrambe che io sappia).

grazie dell'aiuto

inviato 9 anni fa
Enea Zenni
X 0 X

Devi fare 2 JOIN, sulla stessa tabella, uno per la cittą di partenza e l'altro per la cittą di arrivo.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

ciao Gianni

ma devo fare 2 query distinte? che p*lle ... tipo:

SELECT * FROM TAB_A, TAB_B WHERE TAB_A.idCittaPartenza = TAB_B.idCitta

poi stampo questi dati e infine faccio l'altro join?

dai ci deve essere una soluzione con un'unica query!!! 

risposto 9 anni fa
Enea Zenni
X 0 X

No, devi fare 2 JOIN nella stessa query:

SELECT

   A.data, B1.nomeCitta citta_partenza, B2.nomeCitta citta_arrivo

FROM

   TAB_A A, TAB_B B1, TAB_B B2

WHERE

   A.idCittaPartenza = B1.idCitta AND

   A.idCittaArrivo = B2.idCitta

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

oooh che figata! cosi speravo fosse la soluzione ... in realtą credevo fosse sintatticamente scorretto e non avevo provato!

grazzzie gianni!

risposto 9 anni fa
Enea Zenni
X 0 X

ma adesso se devo accedere da php al valore B2.nomeCitta posso fare:

$results = "la query che mi hai suggerito";
$row = mysqli_fetch_array($results);
while(...){
$row[B2.nomeCitta];
}

??

perchč ho provato ma sembra che il dato non sia disponibile (non da errori a nessun livello ma il dato č mancante). come faccio?

risposto 8 anni fa
Enea Zenni
X 0 X

ho usato degli alias nella query proprio per questo motivo:

while(...){
$row['citta_partenza'];
$row['citta_arrivo'];
}

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Grazie  anzora Gianni!  ;)

risposto 8 anni fa
Enea Zenni
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda