Newsgroup: it.comp.appl.access
Titolo: query eliminazione con odbc

ho un problema che non riesco a risolvere con questa sql
"delete *FROM residui_ante_90_cartelle LEFT JOIN residui_ante_90_righe ON
residui_ante_90_cartelle.IdCartella = residui_ante_90_righe.IdCartella
WHERE (((residui_ante_90_righe.IdCartella) Is Null))"
anzitutto premetto che le 2 tabelle sono tabelle MYSQL collegate tramite
gli odbc. devo eliminare i record della prima tabella che non
corrispondono alla seconda. se dovessi farlo con tabelle access non avrei
problemi mentre invece con questa query non riesco a farlo. mi esce un
errore del motore MYSQL. Devo cambiare qualcosa nella query o non è
possibile eliminare i record in questo modo.
ciao a tutti
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 possibile eliminare i record in questo modo.
dimmi che errore hai, uso mysql...un consiglio...prima di eseguire il codice
tramite
ODBC, testa la query...usa ad esempio mysqlfront che ha un approccio diretto
tramite API, in questo modo sarai sicuro che non hai commesso errori che
potrebbero
essere mascherati da ODBC....

HjKlOp ha scritto:


ho fatto anche così ma non riuscivo a risolvere il problema.
questo è l'errore ERROR 1064: Errore di sintassi nella query SQL vicino a
'LEFT JOIN residui_ante_90_righe ON residui_ante_90_cartelle.IdCartella =
residui' linea 1"
grazie comunque dell'interessamento se riesci a capire tu o qualunque
altra persona fatemi sapere.
ciao


 ho fatto anche cosě ma non riuscivo a risolvere il problema.
Mi sembra che mysql non voglia l'asterisco dopo il comando delete.
Ciao
BJ

 BJ
si è vero infatti l'asterisco non c'è. penso che il problema sia il left
join. ma come posso fare a far girare questa maledetta query?


 residui' linea 1"
Scusa sono tornato solo ora...
come ha ben detto Brown, con mysql usi la sintassi "DELETE FROM table",
ciň che invece forse non hai capito č che quando chiedi a qualcuno aiuto
dovresti
fornire le informazioni dettagliate sull'errore ricevuto dal DB, vedi, nel
tuo caso l'errore
č un errore di sintassi, ma dal primo messaggio non si evince nulla, hai
scritto...
"mi esce un errore del motore MYSQL" (č chiaro che da una analisi piů
attenta della tua query
si capiva chiaramente che in "DELETE *FROM" c'era qualcosa che non andava,
ma non č
questo il metodo migliore per apprendere) questo č il motivo per cui
ti ho chiesto di usare front-end diretti che ritornano esattamente l'errore
che stai commettendo...
la sintassi dell' SQL di mysql č diversa per alcuni aspetti da quella di
Access,  scaricati il manuale
di MySQL (esiste anche in versione help di windows),  prima di chiedere
aiuto all'esterno cerca
di controllare che la sintassi usata sia quella giusta...ne trarrai un
immenso vantaggio in termini di
conoscenza...ciao.

 join. ma come posso fare a far girare questa maledetta query?
Trova l'ID  e usalo per il DELETE


Trova l'ID  e usalo per il DELETE
prova cosě..
DELETE *.residui_ante_90_cartelle
FROM residui_ante_90_cartelle, residui_ante_90_righe
WHERE residui_ante_90_cartelle.IdCartella = residui_ante_90_righe.IdCartella
AND (((residui_ante_90_righe.IdCartella) Is Null))

Scusa ho invertito...nella fretta č chiaramente:
residui_ante_90_cartelle.*

 residui_ante_90_cartelle.*
non mirestituisce nessun record anche se non mi da più nessun errore.
se puoi fammi sapere. ciao e per ora grazie


 se puoi fammi sapere. ciao e per ora grazie
Guarda che la tua è una query di ELIMINAZIONE !!!!
Non hai fatto una SELECT ma un DELETE !!!!

HjKlOp ha scritto:


si certo ma siccome non mi eliminava nulla ho provato a controllare cosa
selezionava e mi sono accorto che non selezionava nulla. cmq ho risolto or
ora il problema montando la versiona aggiornata del motore mysql 4.0.15.
questa accetta sembra problemi il delete con il left join. ti ringrazio
cmq del tuo interessamento e della tua cortesia. ciao e grazie
