JOIN Tabelle | Progettazione di DataBase Relazionali

Topic: Pubblico - Composto da 5 Posts di 3 Utenti.

07 Settembre, 2010 12:01 #1
vasomik
Utente

vasomik
Registrato: Sep, 2010
Posts: 4
Offline

Ciao a tutti,
passo subito al problema.
Ho due tabelle:

Tabella partite:
idpartita idsquadraA idsquadraB
1 1 2
2 2 1

Tabella squadre:
idsquadra nomesquadra
1 pippo
2 pluto

Ho provato così:

SELECT partite.*, squadre.nomesquadra, squadre2.nomesquadra AS nomesquadra2
FROM partite
INNER JOIN squadre ON partite.idsquadraA=squadre.idsquadra
INNER JOIN squadre AS squadre2 ON partite.idsquadraB=squadre2.idsquadra

ma ottengo sempre e solo pippo sia per nomesquadra che per nomesquadra2.

Dove sbaglio?

vasomik

07 Settembre, 2010 14:52 #2
darasc
Moderatore

darasc
Registrato: Jul, 2010
Posts: 64
Offline

Ciao vasomik,

in realtà la query che hai postato dovrebbe funzionare.
Infatti dovrebbe restituirti in output le due partite pippo-pluto e pluto-pippo.
Ho anche testato il tuo esempio con mysql query browser e la query che hai postato sembra funzionare senza problemi.

Fammi sapere,

darasc

07 Settembre, 2010 15:55 #3
vasomik
Utente

vasomik
Registrato: Sep, 2010
Posts: 4
Offline

Non so perchè non funzioni, ho provato tramite codice, ho provato ad eseguire la query tramite phpadmin ma il risultato è sempre lo stesso.

Alla fine ho risolto così:

SELECT partite.*, t1.nomesquadra, t2.nomesquadra AS nomesquadra2 FROM partite INNER JOIN squadre AS t1 ON partite.idsquadraA = t1.idteam INNER JOIN squadre AS t2 ON partite.idsquadraB = t2.idteam

vasomik

07 Settembre, 2010 20:19 #4
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 867
Offline
Segui g2d su Twitter!

Ciao vasomik

come vedo hai già conosciuto l'ottimo darasc, beh come ti ha anticipato lui, anche secondo me la tua query è corretta.

L'unica cosa che penso possa destare qualche sospetto è relativa agli alias, mi spiego, in questi casi è conveniente usarli sempre.

Infatti nella prima JOIN del primo post non li hai usati, nella documentazione ufficiale non ho mai trovato punti in cui si parlasse di ciò, non ho mai capito quindi si trattasse di un requirement delle query o di un bug.

L'importante è aver capito una cosa in più!

Grazie a tutti della partecipazione

Saluti algweb


Un tempo ero algweb ora sono g2d

07 Settembre, 2010 20:54 #5
vasomik
Utente

vasomik
Registrato: Sep, 2010
Posts: 4
Offline

Comunque non capisco come possa darvi, la prima query, un risultato diverso dal mio.
Grazie a tutti per l'aiuto.

vasomik

Ultima modifica 07 Settembre, 2010 20:55 di vasomik

Condividi su:

Loggati o Registrati per replicare