Posto questo esempio di codice SQL :| perchè chiacchierando con un amico è emerso che la sintassi del "delete from from" è molto utile ma non molto conosciuta.
PROBLEMA: Devo cancellare i record della tabella "Tabella_A" che esistono nella tabella "Tabella_B" (testato su Sql Server 2008).
Se la chiave di relazione fra le due tabelle è solo una posso risolverla molto velocemente così:
DELETE
FROM Tabella_A
WHERE Chiave IN
( SELECT Chiave FROM Tabella_B WHERE Tabella_A.Chiave = Tabella_B.Chiave )
Se le chiavi di relazione sono due o più:
DELETE
FROM Tabella_A
FROM Tabella_A A INNER JOIN Tabella_B B ON A.Chiave = B.Chiave
In generale la parte in bold è il subset di dati che mi dice quali record dovrò cancellare dalla tabella in Italic.
So che questo può sembrare un post "del piffero" ma delle volte può risultare utile!
Riccardo.