View Full Version : access e sql
serbring
05-02-2004, 14:15
ho la seguente struttura
persona (CF,nome,cognome) cf è una chiave primaria
ambito (id,nome,cf_r) cf chiave esterna da persona
ora io devo selezionare tutte le istanze di persone che non sono su ambito, io ho fatto
select distinct persona.*
from persona, ambito
where persona.cf <> ambito.cf_r
ho fatto questo su access solo non mi va mi da in pratica tutte le istanze di persona. Dove ho sbagliato? GRAZIE!
SELECT *
FROM persona
WHERE cf NOT IN (SELECT cf_r FROM ambito);
serbring
05-02-2004, 17:06
hai fatto una mezza specie di join giusto? per quale motivo non dovrebbe andare quello che ho fatto io? sul libro per un interrogazione simile usava delle istruzioni simili!
No...il mio non è un JOIN...
Allora ti spiego...
"select *
from persona, ambito "
fa un prodotto scalare di ogni record di persona per ogni record di ambito...
Mettiamo che nelle varie tabelle ci siano queste righe:
persona
P1
P2
P3
P4
ambito
A1
A2
A3
Il risultato è:
P1 A1
P1 A2
P1 A3
P2 A1
P2 A2
P2 A3
P3 A1
P3 A2
P3 A3
P4 A1
P4 A2
P4 A3
Ora mettiamo che P1 e A1, P2 e A2, P3 e A3 abbaino a coppie lo stesso cf... Di conseguenza il risultato che tu vorresti sarebbe il solo P4...
"select *
from persona, ambito
where persona.cf <> ambito.cf_r"
Il risultato della query sopra è:
P1 A2
P1 A3
P2 A1
P2 A3
P3 A1
P3 A2
P4 A1
P4 A2
P4 A3
Hai selezionato solo gli attribti di persona ed hai emsso distinct...quindi:
P1
P2
P3
P4
è il risultato giusto...
serbring
09-02-2004, 09:53
ho provato con access ma mi dice di inserire un parametro su cf_responsabile
SELECT cf_r FROM ambito
Hais critto male il nome del campo nel pezzo di query sopra...
serbring
09-02-2004, 13:30
mi da lo stessa cosa. Se metto un parametro mi da tutti i cf_r diversi dal parametro!
Ripeto...hai scritto male il nome dell'attributo della seconda query... E' l'unica spiegazione possibile... Controlla il nome dell'attributo nella tabella ambito...
serbring
10-02-2004, 09:03
GRAZIE di cuore mi è venuto avevi ragione tu!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.