-
Ho un piccolo problema con una query
faccio un join tra due tabelle che hanno un campo compatibile ma se uno dei valori e null la riga viene esclusa... mi spiego meglio
Ho 2 tabelle
Calciatori (nome,cognome,ruolo,squadra)
Societa (id_societa, nome_societa)
SELECT * FROM
fantamanager INNER JOIN calciatori INNER JOIN societa ON calciatori.squadra = societa.id_societa
WHERE cognome='pincopallino'
poichè il campo squadra di calciatori può essere null (giocatori svincolati) la riga corrispondente non viene selezionata!!!
Spero di aver spiegato bene il problema!!!
Grazie
Luketto
-
Credo ti convenga postare nella sezione "Supporto ---> Livello 4"
-
-
Grazie per aver spostato il mio messaggio, ma fino ad ora non ho avuto risposta!!!! :cry:
-
Purtroppo non ho più il mio bel libro sui DB e non mi ricordo granchè...però mi pare di ricordare l'esistenza di diverse JOIN, il problema è che non mi ricordo esattamente come funzionino.
Prova un po' a vedere cosa succede usando OUTER JOIN oppure LEFT JOIN o RIGHT JOIN.
Ribadisco comunque che potrei aver scritto una bella cavolata perchè è da un po' che non tocco un db.
-
Ti ringrazio cmq per aver risposto!!! Appena ho un po di tempo provo!!!
Grazie
-
provo a fare un esempio
CALCIATORI
NOME COGNOME RUOLO SQUADRA
Pippo Inzaghi A 1
Christian Vieri A 2
Luca Santy C NULL (non gioca in nessuna squadra)
SQUADRE
ID_SOCIETA NOME_SOCIETA
1 MILAN
2 INTER
facendo la query ottengo questo...
SELECT * FROM calciatori INNER JOIN societa ON calciatori.squadra = societa.id_societa
NOME COGNOME RUOLO SQUADRA NOME_SOCIETA
Pippo Inzaghi A 1 MILAN
Christian Vieri A 2 INTER
mi esclude Luca Santy perchè non può fare il Join essendo il Campo compatibile tra le due relazioni NULL!!! Il mio obiettivo è questo invece...
NOME COGNOME RUOLO SQUADRA NOME_SOCIETA
Pippo Inzaghi A 1 MILAN
Christian Vieri A 2 INTER
Luca Santy C NULL
meglio di cosi' non ci riesco!!!
help me
-
SELECT * FROM calciatori LEFT JOIN societa ON calciatori.squadra = societa.id_societa
-
I vari tipi di join sono???
Inner, left, right, e poi?
-
dipendono dall'RDBMS. Per MySQL vedi http://www.mysql.com/doc/en/JOIN.html
-