scusate per il titolo ma non sapevo come scrivere,
dovrei estrarre dei dati da una tabella che non siano presenti in una altra tabella, come posso fare?
scusate per il titolo ma non sapevo come scrivere,
dovrei estrarre dei dati da una tabella che non siano presenti in una altra tabella, come posso fare?
Dicci come son fatte queste tabelle.
I dilettanti costruirono l'Arca, i professionisti il Titanic!
yes
dalla prima tabella devo estrarre il campo Codice e Nome (codice è autoincrement) mentre nella seconda tabella ho il campo Codice che sarebbe un link al campo Codice della prima tabella che è inserito più volte, quindi io dovrei inserire i dati della prima tabella che non si riferiscono al campo Codice della seconda.
sperò di essere stato chiaro
Non ho ben capito. In ogni caso prova con:
SELECT Codice,Nome FROM primatabella p LEFT JOIN secondatabella s ON p.codice=s.codice WHERE p.codice IS NULL;
e dimmi se funziona
I dilettanti costruirono l'Arca, i professionisti il Titanic!
non funziona, cerco di spiegarmi meglio;
ho due tabelle nella prima ho i campi Codice e RagioneSociale, nella seconda tabella ho il campo CodiceStruttura che non è altro il valore del campo Codice della prima tabella ripetutto più volte, ora ho la necessità di inserire in una combobox i valori della prima tabella che non sono presenti nella seconda e viceversa in una seconda combobox.
La query passata sopra è quella giusta... prova a controllare bene le chiavi che usi il concetto è:
SELECT * FROM TAB1 LEFT OUTHER JOIN TAB2 ON TAB1.CHIAVE=TAB2.CHIAVE_ESTERNA_DI_TAB1
WHERE TAB2.CHIAVE_ESTERNA_DI_TAB1 IS NULL
La left outher associa tutti i record di tab1 (quella a sinistra) con quelli di tab2 secondo la condizione passata nell'on . Nel caso in cui non ci fosse il corrispettivo inserisce null. Filtrando sulla condizion = null ottieni tutti i record presenti in tab1 ma non in tab2.
Ovviamente le chiavi devono essere coerenti con le tabelle (ma questo è tutto un'altro discorso).
gigio
niente, non mi dà niente,
la tabella2 e cosi formata:
CodiceStruttura int(11) primary key (link al campo codice della prima tabella)
CodicePromo int(11) primary key
Tipo char(1)
la tabella due contiene il campo Codice(primary key, autoincrement),il campo RagioneSociale ecc...
poiche inserisco in un'altra tabelle delle informazioni dove gli associo la RagioneSociale della prima tabella, e possono essere associate più RagioneSociale, per tenere traccia di questo mi serve la tabella2,
quindi se salvo l'info 10 dove associo la RagioneSociale 33,56,78, nella tabella2 avrò questa situazione:
CodiceStruttura CodicePromo Tipo
33 10 S
56 10 S
78 10 S
ora quello che vorrei fare è quello di poter estrarre dalla tabella1 solo i dati che non sono associati al CodicePromo Tipo S, che in questo caso sono 33,56,78 ma tutti gli altri.
Non ho ben capito come siano le chiavi comunque la query che ti ho dato è valida, in caso prova a cambiare la LEFT con RIGHT, magari hai invertito le tabelle...
Seconda possibilità (molto meno bella a mio giudizio) è quella di usare una query nasted del tipo
SELECT * FORM TAB
WHERE CODICE NOT IN (SELECT CODICE FROM ALTRATAB)
Questo a mio giudizio è una query orrenda comunque funziona ugualmente (meno performante però....)
Il concetto è quello
Prova a scrivere la query che hai fatto sulla base delle informazioni che ti abbiamo passato magari c'è un errore di struttura della query che così al buio non si vede....
gigio