ho due tabelle:
tabella1
idTabella1
nome1
-------------
tabella2
idTabella2
idTabella1
nome2
voglio sapere quanti idTabella1 non compaiono in tabella2. É possibile con una sola query?
ho due tabelle:
tabella1
idTabella1
nome1
-------------
tabella2
idTabella2
idTabella1
nome2
voglio sapere quanti idTabella1 non compaiono in tabella2. É possibile con una sola query?
alcool: la causa e la soluzione di tutti i problemi
cosi che se in tabella1 ho 20 id e di questi 20, solo 7 appaiono in tabella2, ottengo come risultato della query 13...
alcool: la causa e la soluzione di tutti i problemi
select count(*) from tabella1 where idtabella1 not in ( select distinct idtabella1 from tabella2)
esiste la OUTER JOIN,
SELECT count(*)
FROM tabella1 LEFT OUTER JOIN tabella2
WHERE idTabella2 is null;
dovrebbe andare, l'ho fatta così in 2 minuti... fammi sapere.. ciao
ciao, l'ho provata ma mi da un errore di sintassi.. boh.. consigli?
alcool: la causa e la soluzione di tutti i problemi
dimenticavo la condizione.... cmq anche l'altra soluzione è esatta!!
SELECT count(*)
FROM tabella1 AS T1 LEFT OUTER JOIN tabella2 AS T2 on T1.idTabella1 = T2.idTabella1
WHERE idTabella2 is null;
FUNZIONA!.. ma io sono un pir*a... in realtà non avevo capito quello che mi avevano chiesto:
devo fare una query che come risultato mi dia tutti gli idTabella1 che non sono presenti in idTabella2...
con oracle si puo fare qlc tipo:
select idtabella1 from tabella1
MINUS select idtabella1 from tabella2
idee? ora guardo il manuale..
alcool: la causa e la soluzione di tutti i problemi
scusa ma non ho capito cosa devi fare.. praticamente invice di avere il numero di id1 devi visualizzarli tutti?
si... tutti gli id che non ci sono nella tabella2
é una semplice esclusione (teoria insiemistica) ho risolto (spero)cosi:
codice:SELECT * FROM tabella1 WHERE idtabella1 NOT IN (SELECT idtabella1 FROM tabella2)
alcool: la causa e la soluzione di tutti i problemi