Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    eliminazione records da tab con left join?!

    ciao , ho un problema con sql.

    io ho 2 tab , una bilanci mentre un'altra esplo.

    ho verificato tramite questa query se in esplo esistevano valori di bilanci , 7000 record inesistenti ; meglio toglierli per smaltire un po di lavoro .

    codice:
    select b.codsoc AS codsocieta , e.codsoc AS codsocietaesplo , b.denominazione AS denomi from bilanci_pres as b left join esplo_bil as e on b.codsoc = e.codsoc where e.codsoc is null LIMIT $primo,$per_page
    quindi devo togliere da esplo i valori che non sono presenti in bilanci , quindi quelli null.
    ho usato una query del genere , ma dice che non ha eliminato nulla, non un errore , ma che non ha trovato nessuna righa!


    codice:
    DELETE esplo_bil
    FROM bilanci_pres as b left join esplo_bil as e on b.codsoc = e.codsoc 
    WHERE e.codsoc is null ;
    grazie, ciao

  2. #2
    codice:
    DELETE e
    FROM bilanci_pres as b 
    left join esplo_bil as e on b.codsoc = e.codsoc 
    WHERE e.codsoc is null ;
    se usi un alias nella scelta delle tabelle devi usare lo stesso alias nel delete. Comunque per principio, personalmente (HIMO) non userei mai l'alias nel delete. Un errore ti farebbe un disastro.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Ok , grazie del consiglio , lo utilizzerò da adesso in poi!

  4. #4
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ho lanciato la quary :
    codice:
    DELETE esplo_bil
    FROM bilanci_pres LEFT JOIN esplo_bil ON bilanci_pres.codsoc = esplo_bil.codsoc 
    WHERE esplo_bil.codsoc IS NULL ;
    togliendo gli alias .
    ma ritorna questo errore :
    Errore
    query SQL:

    DELETE esplo_bil FROM bilanci_pres LEFT JOIN esplo_bil ON bilanci_pres.codsoc = esplo_bil.codsoc WHERE esplo_bil.codsoc IS NULL

    Messaggio di MySQL:

    #1030 - Got error 127 from table handler



    qualcuno mi può aiutare , ho guardato sulla guida on-line ma nulla!
    ciao

  5. #5
    Originariamente inviato da tapu
    Messaggio di MySQL:

    #1030 - Got error 127 from table handler
    tabella corrotta. Prova con un repair table se si sistema.

    Pero' mi sfugge un particolare .... se vuoi cancellare i record che NON hanno riferimento devi cancellare dall'altra tabella.


    DELETE esplo_bil
    .....
    WHERE esplo_bil.codsoc IS NULL ;

    se e' NULL non ci sono record che rispondono alla condizione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Scusa, hai perfettamente ragione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.