Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Discussione: [SQL] Delete Complesso

  1. #11
    OK .. siamo d'accordo!!

    .. per Markho ... facci sapere!
    Non può piovere per sempre http://forum.html.it/forum/faccine/064.gif

  2. #12
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da Markho
    calma un attimo, io devo cancellare quelli diversi, adesso provo le vostre soluzioni, poi v faccio sapere
    questa funzia
    codice:
    delete tab2 from 
    (select tab2.campo1,tab2.campo2 
    from tab2 
    left join tab1 on tab1.campo1 = tab2.campo1 and tab1.campo2 = tab2.campo2
    where tab1.campo1 is null and tab1.campo2 is null) as t1
    where t1.campo1=tab2.campo1 and t1.campo2 = tab2.campo2

    ti cancella da tab2 i record diversi da tab1 (cioè quelli che hai in più rispetto a tab1)

  3. #13
    rimango della mia opinione...


    DELETE tab2
    FROM tab2 LEFT JOIN tab1 ON tab2.campo1 = tab1.campo1 AND tab2.campo2 = tab1.campo2
    where tab1.campo1 IS NULL AND tab1.campo2 IS NULL


    e' piu' veloce...
    Non può piovere per sempre http://forum.html.it/forum/faccine/064.gif

  4. #14
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da dieghito101
    rimango della mia opinione...


    DELETE tab2
    FROM tab2 LEFT JOIN tab1 ON tab2.campo1 = tab1.campo1 AND tab2.campo2 = tab1.campo2
    where tab1.campo1 IS NULL AND tab1.campo2 IS NULL


    e' piu' veloce...
    si infatti, scusa diego, non avevo letto il tuo post

  5. #15
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    90

    ti ho postato la soluzione contraria!!!!!!!

    scusa ma avevo inteso che dovevi cancellare i records UGUALI !!!!!

    la soluzione, in SQL server, è questa:

    delete tab2
    from tab2 t2
    where NOT EXISTS (select * from tab1 t1
    where t1.tab1_campo1 = t2.tab2_campo1 and
    t1.tab1_campo2 = t2.tab2_campo2)
    ciao.
    Roby.

  6. #16
    no problem darkblOOd!

    .. comunque ... rimaniamo in attesa ... perchè io non ho provato in effetti se funziona!!

    anche se credo di si!
    Non può piovere per sempre http://forum.html.it/forum/faccine/064.gif

  7. #17

    Ho risolto

    1° grazie a tutti per l'aiuto, ho risolto così:

    codice:
    DELETE tab2 
    FROM tab2 
    where 
    tab2.campo1 = tab1.campo1 (+)
    AND tab2.campo2 = tab1.campo2 (+)
    AND tab1.campo1 IS NULL 
    AND tab1.campo2 IS NULL
    ho dovuto sostituire il tab2 LEFT JOIN tab1 ON con i (+), xche sto usando un DB Oracle, e le join si fanno così....




    ho usato il medoto di dieghito101 xche mi sembrava (e lo è) il + veloce, considerando il numeri di record (davvero tanti)

    grazie ancora, a presto
    ...e quando meno te lo aspetti potrebbe capitare qualcosa di bello, di più importante di quello che avevi programmato...

  8. #18
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da dieghito101
    no problem darkblOOd!

    .. comunque ... rimaniamo in attesa ... perchè io non ho provato in effetti se funziona!!

    anche se credo di si!
    certo che funziona, fa la stessa cosa della mia ma semplificando la sub select di selezione. I comandi sono uguali, cambia la sintassi e la tua è più corta

    @ robyemme: questo post vale come risposta anche per te

  9. #19
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212

    Re: Ho risolto

    Originariamente inviato da Markho
    1° grazie a tutti per l'aiuto, ho risolto così:

    codice:
    DELETE tab2 
    FROM tab2 
    where 
    tab2.campo1 = tab1.campo1 (+)
    AND tab2.campo2 = tab1.campo2 (+)
    AND tab1.campo1 IS NULL 
    AND tab1.campo2 IS NULL
    ho dovuto sostituire il tab2 LEFT JOIN tab1 ON con i (+), xche sto usando un DB Oracle, e le join si fanno così....




    ho usato il medoto di dieghito101 xche mi sembrava (e lo è) il + veloce, considerando il numeri di record (davvero tanti)

    grazie ancora, a presto
    infatti, l'altro giorno per aiutare un'amica ho dovuto cambiare una join con uno script ANSI vecchio perchè TOAD non interpretava il comando JOIN e la AS per gli alias

  10. #20
    ciao a tutti...

    .. vado a lavorare!!
    Non può piovere per sempre http://forum.html.it/forum/faccine/064.gif

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.