Quesito query

giovedì 14 giugno 2007 - 13.46

Gianca Profilo | Newbie

Ciao :)
Premetto che sono alle prime armi con SQL e vorrei fare una la seguente query:
Ho due tabelle che hanno un campo (IdMov) collegato (è giusto dire collegato..?)
Vorrei fare una query che mi cancelli dalla Tabella 2 tutti i record che non nel campo IdMov non hanno una corrispondenza con la Tabella 1. Per far ciò credo di aver capito debba usare un JOIN, quindi ho scritto questa query:

DELETE Tabella2
FROM Tabella1 INNER JOIN Tabella2 ON Tabella1.IdMov = Tabella2.IdMov
WHERE Tabella1.IdMov <> Tabella2

Ovvimente nn và...(nn sarei qui altrimenti)

ps.:visto "l'importanza" dei comandi usati ovviamente sto lavorando su un DB di prova.

Grazie

lbenaglia Profilo | Guru

>Vorrei fare una query che mi cancelli dalla Tabella 2 tutti i
>record che non nel campo IdMov non hanno una corrispondenza con
>la Tabella 1.

Spesso senza un esempio concreto è più difficile cercare di capire quello che si vuole fare rispetto a trovare una soluzione
Io ho capito che vorresti eliminare da Tabella 2 le righe che non sono presenti in Tabella 1.
In questo caso leggi l'esempio 1 in questo thread:
http://groups.google.it/group/microsoft.public.it.sql/browse_thread/thread/e24031705287f483

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

denis.basei Profilo | Senior Member

Devi scrivere la query in questo modo:

DELETE * from Tabella2
where Tabella2.IDMov not in (select Tabella1.IDMov from Tabella1)


ciao!

Gianca Profilo | Newbie

Risolto uttto grazie alla query di Denis
Grazie a tutti!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5