- Home
- Categorie
- Coding e Sistemistica
- Coding
- Join al contrario
-
Join al contrario
Ho due tabelle:
Tabella agenzia
Campi
id
denominazione
partita iva
indirizzo
....
....
....Tabella regioni
Campi
id
idAgenzia
regioneLe due tabella hanno una corrispondenza: il campo id della tabella agenzia è uguale al campo idAgenzia della tabella regioni.
Ora io dovrei fare una select per visualizzare tutte i campi presenti sulal tabella agenzie ma non presenti sulla tabella regioni. Pensavo ad una JOIN ma non saprei come strutturarla per questo caso.
-
Ciao freebreathe,
tempo fà ho dovuto fare una cosa simile, alla fine non sono riuscito a trovare una funzione che faccia ciò direttamente, nel mio caso ho preferito fare più query.
Come "soluzione" puoi fare un SELECT DISTINCT unendo le 2 tabelle con un left join.
Controllare poi da php se la query ha unito la seconda tabella, se non l'ha unita allora non è presente nelle regioni.
-
Al momento mi sembra la soluzione migliore.
Ho fatto come hai detto tu, ho unito le due tabelle con una LEFT JOIN su una SELECT DISTINCT e poi li visualizzo in ordine di id della seconda tabella. Cos' i primi ad essere visualizzati sono appunto quelli mancanti.
-
Ciao secondo me puoi utilizzare nel where il NOT IN puoi vedere un esempio qui mysqlitalia.net /wiki/Predicati_IN_%E2%80%93_NOT_IN_in_MySQL
-
@christian82 said:
Ciao secondo me puoi utilizzare nel where il NOT IN puoi vedere un esempio qui mysqlitalia.net /wiki/Predicati_IN_%E2%80%93_NOT_IN_in_MySQL
Si infatti, ho appena testato e sembra funzionare.SELECT id,denominazione,partita_iva,indirizzo FROM agenzia where id not in (select idAgenzia from regioni) ```Ciao :)