2016-04-05 22 views
0

Satırları seçmek için WHERE yan tümcesinde bir AND gerektiren bir DELETE var. WHERE'deki değerlerden biri aslında bir sürü kimliktir. Kullanıcı kimlikleri listesini almak ve sonra listeyi kullanarak döngü yapmak için programlama ile başarabilirim. SQLServer Tablodan başka bir tablodan gelen listeyle silme

This query returns a list of GroupUserIds 
SELECT Id FROM GroupUser WHERE GroupUserId = @GroupUserId 

Ben tek bir SQL deyimi içine bu birleştirmek için bir yol olmalı
Foreach @GroupUserId in GroupUserIds 
DELETE FROM VariableTransaction WHERE VariableId = @VariableId AND GroupUserId = @GroupUserId 

her GroupUserId

için VariableTransaction dan silmek için bu dilek ama bir çözüm çözemiyorum tüm örneklere bakarak, AND ile onu karmaşıklaştırır.

cevap

1

bir alt sorgu ile bir IN yan tümcesi kullanmayı deneyin:

DELETE FROM VariableTransaction WHERE VariableId = @VariableId 
AND GroupUserId IN (SELECT Id FROM GroupUser WHERE GroupUserId = @GroupUserId) 
İlgili konular