- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Join articolato su 3 tabelle
-
Join articolato su 3 tabelle
Salve,
sto impazzendo per eseguire una query su 3 tabelle:- nelle tabelle 1 e 2 ci sono solo i campi: id auto-increment e il valore
- nella tabella 3 ci sono i campi: id auto-increment, id della tabella 1, id della tabella 2
tabella1 ------------- id | valore tabella2 ------------- id | valore tabella3 ------------------------ id | id_t1 | id_t2
Vorrei estrarre tutti i record delle tabelle 1 e 2 che non esistono nella tabella 3, utilizzando (id_t1 + id_t2) come chiave univoca.
es:
Risultato della query: ---------------------------------------------- valore_t1 | valore_t2 valore_t1 | valore_t2 valore_t1 | valore_t2 valore_t1 | valore_t2 valore_t1 | valore_t2
E' possibile farlo?
1 Risposta -
ciao @w-t secondo me è sbagliato il modo in cui hai progettato la tabella 3.
Se id_t1 + id_t2 può esserci una sola volta puoi crearti una chiave composta e quindi la tabella sarà
tabella3
id_t1 | valore
id_t2 | valoreIn questo modo potrai fare la tua join ma manterrai la correlazione tra le varie tabelle.
-
Ciao
in un altro forum mi hanno risposto cosi:select t3.id, x.id_t1, x.id_t2 from ( select t1.id as id_t1 , t2.id as id_t2 from tabella1 t1, tabella2 t2) x left join tabella3 t3 ON x.id_t1 = t3.id_t1 AND x.id_t2 = t3.id_t2 where t3.id is NULL order by t3.id, x.id_t1, x.id_t2
Ma mi da errore: Unknown column 't3.id_t1' in 'on clause'
Non capiamo il perchè
1 Risposta -
@w-t se la struttura della tua tabella 3 è uguale a quella che hai postato sopra è normale.
Riesci a postarci lo schema SQL così partiamo da quello?