Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

"Accoppiare" dati di due tabelle

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

"Accoppiare" dati di due tabelle

Postdi Bullfrog » 17/07/08 14:19

Buondì a tutti.
Parto subito con la domanda di aiuto.

Ho il mio bel DB con due tabelle: prodotti (nome, area di produzione) e coordinate (che contiene le coordiante LAT e LONGI dei paesi).

Avrei la necessità di "stampare" il prodotto con le corrispondenti coordinate dell'area di produzione.

Giusto per chiarivi:
Tabella prodotti contiene NOME e AR_RI_PRODOTTO
Tabella coordinate contiene LAT, LONGI e FULL_NAME

I campi che mettono in relazione le due tabelle sono:
ar_ri_prodotto e full_name

Il campo ar_ri_prodotto contiene, ad esempio: Gioia del Colle, Santeramo, Turi, Altamura, Grumo Appula, Noci, Putignano, Rutigliano, Sammichele di Bari, Sannicandro, Acquaviva delle Fonti, Adelfia, Casamassima, Cassano delle Murge, Castellana Grotte, Conversano

Il campo full_name invece, contiene, ad esempio, Altamura


In pratica in ar_ri_prodotti possiamo trovare uno o più paesi, in full_name, invece, solo un paese.

Ho usato la funzione INNER JOIN in questo modo:
Codice: Seleziona tutto
SELECT p.nome,p.ar_ri_prodotto,c.lat,c.longi,c.full_name FROM prodotti p INNER JOIN coordinate c ON p.ar_ri_prodotto = c.full_name


con il risultato che mi restituisce solo 15 prodotti e non tutti 234

Vi prego HELP!
Grazie
Bullfrog
Newbie
 
Post: 3
Iscritto il: 17/07/08 14:16

Sponsor
 

Re: "Accoppiare" dati di due tabelle

Postdi archimede » 17/07/08 14:56

Francamente il disegno delle tua base dati non mi pare il massimo: se possibile ti raccomando di cambiarlo. Altrimenti puoi provare a usare l'operatore LIKE.

HTH.

Alessandro

PS: ripensandoci, anche se il LIKE funzionasse, otterresti molto probabilmente un elenco di prodotti con dei doppioni (poiché se un prodotto è in n paesi, avresti una riga di quel prodotto per ogni paese) e dubito sia quello che tu vuoi ottenere.
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: "Accoppiare" dati di due tabelle

Postdi Bullfrog » 17/07/08 15:13

Lo so che la base non è il massimo, anzi è una fetenzia allo stato puro. Purtroppo me lo sono ritrovato.
Il tutto mi serviva per posizionare i prodotti, rinvenuti in una serie di paesini, utilizzando le API di GoogleMaps utilizzando un DB di coordinate che ho trovato in giro per il web.
Se si hanno altre idee, vi prego, sono ben accette!
Bullfrog
Newbie
 
Post: 3
Iscritto il: 17/07/08 14:16

Re: "Accoppiare" dati di due tabelle

Postdi archimede » 17/07/08 15:53

Bullfrog ha scritto:Lo so che la base non è il massimo, anzi è una fetenzia allo stato puro. Purtroppo me lo sono ritrovato.
Ma se a ridisegnarlo ci metti meno o tanto quanto ci metteresti a fare degli accrocchi conviene comunque cambiarlo, no?
Bullfrog ha scritto:Se si hanno altre idee, vi prego, sono ben accette!
Dipende da cosa vuoi ottenere (e da che DB usi). Un elenco di tutti i prodotti ripetuti per ogni località a cui sono associati? Usa il LIKE. Altro? Sii più specifico.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: "Accoppiare" dati di due tabelle

Postdi Bullfrog » 17/07/08 16:04

Hai ragione.
Allora ho a disposizione una tabella contenente 234 prodotti tipici locali. Questi prodotti sono presenti in più posti, motivo per cui il campo ar_ri_prodotto è popolato da più voci.
Ho anche a disposizione una tabella con le coordinate geografiche di città e paesi italiani.
Il mio obiettivo sarebbe quello di incrociare i dati delle due tabelle per ottenere le coordinare geografiche dei paesi nei quali è possibile trovare i prodotti tradizionali.
Il tutto poi esportato ed utilizzato per una "geolocalizzazione" su GoogleMaps.

Colto e provato il suggerimento di usare LIKE, la query mi restituisce sempre i soliti 15 prodotti.

Sinceramente non so a quale santo votarmi.

Inoltre, pur volendo rifare il DB dei prodotti, come inserire quegli articoli che si ripetono in più località?
Bullfrog
Newbie
 
Post: 3
Iscritto il: 17/07/08 14:16

Re: "Accoppiare" dati di due tabelle

Postdi archimede » 17/07/08 16:28

Bullfrog ha scritto:Colto e provato il suggerimento di usare LIKE, la query mi restituisce sempre i soliti 15 prodotti.
Sintassi usata? DB su cui stai lavorando? Che tipo di campo è AR_RI_PRODOTTO?
Bullfrog ha scritto:Inoltre, pur volendo rifare il DB dei prodotti, come inserire quegli articoli che si ripetono in più località?
Se vuoi mettere mano, il DB è da rifare tutto, non solo Prodotti. Molto schematicamente, tre tabelle:

PRODOTTI
ID_Prodotto (Number - Primary Key)
Nome

COORDINATE
ID_Coord (Number - Primary Key)
Full_Name
Lat
Longi

PROD_COORD
ID_Prodotto (Number - Primary Key)
ID_Coord (Number - Primary Key)

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Programmazione


Topic correlati a ""Accoppiare" dati di due tabelle":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti