Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    SQL : delete con una left join

    Ho bisogno di aiuto.

    Ho 2 tabelle.
    Una principale (A) che contiene una foreing key univoca della seconda (B).
    Per problemi DBA non è stata creata a livello di database una relazione che avrebbe mantenuto allineate le due tabelle.

    Ora devo cancellare le righe della tabella A che hanno foreing key della tabella B che non esistono più.

    Per visualizzare queste righe utilizzo una left join di questo tipo

    SELECT A.CAMPO1A, B.CAMPO1B
    FROM A LEFT JOIN B ON B.PRIMARY_KEY = A.FOREING_KEY
    WHERE B.CAMPO1B IS NULL;

    Considerando che il CAMPO1B della tabella B non può essere nullo.

    Ma come faccio a fargli un delete delle righe della tabella A?

    Grazie a tutti.

  2. #2
    Se ho ben capito, prova il comando EXISTS:

    DELETE FROM TABELLA A
    WHERE eventuale condizione
    AND EXISTS (la tua select sulla tabella B)

    Ciao.

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