Discussione:
Ricerca in più tabelle, o query con collegamento ad altra tabella
(troppo vecchio per rispondere)
paso
2005-01-30 16:00:46 UTC
Permalink
Salve ragazzi, sono quasi completamente a digiuno di Access, ma mi sono
trovato a dover impostare un DB per la mia ragazza, che doveva fare la
tesi.

Ora non so come fare l'ultimo passo: la ricerca.

Il DB è composto di 3 tabelle-registro (sono tre registri, con nomi e
cognomi e poi altri dati per ogni record, dati di tipologia diversa da
tabella a tabella) più una che è il mero elenco alfabetico dei soli nomi
e cognomi, più alcuni campi (ID unico di ogni record, indicazione della
tabella di origine)

Soluzione 1:
Vorrei che la query di ricerca (per "cognome") cercasse in tutte e tre
le tabelle, ma non so come fare.

Soluzione 2:
Ovviamente posso fare la query sulla tabella alfabetica generale, ma poi
il risultato della ricerca non mi riporta tutti i dati in più che sono
contenuti nella tabella originale-registro. Ci vorrebbe una funzione che
ottenuto l'ID dei campi li vada a recuperare dalle tabelle-registro.

Qualcuno può aiutarmi??
Carlo Costarella
2005-01-30 17:41:23 UTC
Permalink
Post by paso
Salve ragazzi, sono quasi completamente a digiuno di Access, ma mi sono
trovato a dover impostare un DB per la mia ragazza, che doveva fare la
tesi.
Ora non so come fare l'ultimo passo: la ricerca.
Il DB è composto di 3 tabelle-registro (sono tre registri, con nomi e
cognomi e poi altri dati per ogni record, dati di tipologia diversa da
tabella a tabella) più una che è il mero elenco alfabetico dei soli nomi
e cognomi, più alcuni campi (ID unico di ogni record, indicazione della
tabella di origine)
Vorrei che la query di ricerca (per "cognome") cercasse in tutte e tre
le tabelle, ma non so come fare.
Ovviamente posso fare la query sulla tabella alfabetica generale, ma poi
il risultato della ricerca non mi riporta tutti i dati in più che sono
contenuti nella tabella originale-registro. Ci vorrebbe una funzione che
ottenuto l'ID dei campi li vada a recuperare dalle tabelle-registro.
Qualcuno può aiutarmi??
Una soluzione possibile è una query di unione (vedi nella guida).
In pratica costruisci una query per ogni tabella avendo cura di lasciare lo
stesso nome campo per tutte le query questo a prescindere che si tratti
dello stesso nome di campo; sarà sufficiente nominare i campi anteponendo
sempre lo stesso nome: Campo1: Cognome; Campo2: IlCampoChevuoi.
Così per tutte e tre le query di ricerca. Alla fine le unisci con una query
di unione del tipo:
select * from Query1
UNION select * from Query2;

Ciao, Carlo
paso
2005-01-30 18:44:58 UTC
Permalink
Post by Carlo Costarella
Una soluzione possibile è una query di unione (vedi nella guida).
In pratica costruisci una query per ogni tabella avendo cura di
lasciare lo stesso nome campo per tutte le query questo a prescindere
che si tratti dello stesso nome di campo; sarà sufficiente nominare i
IlCampoChevuoi. Così per tutte e tre le query di ricerca. Alla fine le
select * from Query1
UNION select * from Query2;
ottimo consiglio, ti ringrazio. Ma non funziona perché una delle tre
tabelle ha un numero di colonne diverso dalle altre.
Carlo Costarella
2005-01-31 07:34:36 UTC
Permalink
Post by paso
Post by Carlo Costarella
Una soluzione possibile è una query di unione (vedi nella guida).
In pratica costruisci una query per ogni tabella avendo cura di
lasciare lo stesso nome campo per tutte le query questo a prescindere
che si tratti dello stesso nome di campo; sarà sufficiente nominare i
IlCampoChevuoi. Così per tutte e tre le query di ricerca. Alla fine le
select * from Query1
UNION select * from Query2;
ottimo consiglio, ti ringrazio. Ma non funziona perché una delle tre
tabelle ha un numero di colonne diverso dalle altre.
Se è questo, nessun problema. Alle query dove manca il campo lo aggiungi tu:
per esempio MioCampo: ""
Ovvio che lo chiamerai così sia doce c'è sia dove non c'è.

Ciao, Carlo

Continua a leggere su narkive:
Loading...