Salve a tutti,
non riesco a trovare una query al mio problema.
Ho 4 tabelle
Tabella 1
id | id_tabella2 (foreign key)| id_tabella3 (foreign key)|
Tabella 2
id | nome |
Tabella 3
id | nome
Tabella 4
id | nome | cognome | id_tabella1 (foreign key)
Ho bisogno di una query che mi restituisca, in una sola query,
nome_tabella2 nome_tabella3 nome_tabella4
delle corrispondenze che si hanno nella tabella 1 e fin qui ci sono arrivato facendo le opportune join. Il problema e' che ho bisogno di nome_tabella2 e nome_tabella3 anche se in tabella 4 non vi e' presente alcun id della tabella 1.
sono arrivato qui
select nome_tabella2 , nome_tabella3, nome_tabella4
from tabella1 join tabella2 on tabella1.id_tabella2 = tabella2.id join tabella3 on tabella1.id_tabella3 = tabella3.id
mi serve un qualcosa che mia dia tutti i risultati normali piu' i nomi di tabella2 e tabella 3 laddove in tabella 4 non appare l id della tabella 1 derivante dalle join...
Provo a spiegarmi praticamente
Tabella 1
id | id_tabella2 (foreign key)| id_tabella3 (foreign key)|
1 1 1
2 2 2
3 3 3
Tabella 2
id | nome |
1 "prova1"
2 "prova2"
3 "prova3"
Tabella 3
id | nome
1 "try1"
2 "try2"
3 "try3"
Tabella 4
id | nome | cognome | id_tabella1 (foreign key)
1 "Carlo" "Rossi" 1
2 "Giovanni" "Foglia" 2
applicando la query di cui sopra:
select tabella2.nome_tabella2 , tabella3.nome_tabella3, tabella4.nome_tabella4
from tabella1 join tabella2 on tabella1.id_tabella2 = tabella2.id join tabella3 on tabella1.id_tabella3 = tabella3.id
avrei come risultato
tab_res
nome_tabella2 | nome_tabella3 | nome_tabella4
"prova1" "try1" "Carlo"
"prova2" "try2" "Giovanni"
Io avrei invece bisogno di una tabella risultato cosi
tab_res_correct
nome_tabella2 | nome_tabella3 | nome_tabella4
"prova1" "try1" "Carlo"
"prova2" "try2" "Giovanni"
"prova3" "try3" NULL
Non posso usare Left o Right Join in quanto in tabella4 non vi sono campi nulli su id_tabella4
Spero di essere stato chiaro. Grazie per un eventuale aiuto