次のように、結合ステートメントを使用して、削除するセットを限定して削除することができます。
DELETE J
FROM Users U
inner join LinkingTable J on U.id = J.U_id
inner join Groups G on J.G_id = G.id
WHERE G.Name = 'Whatever'
and U.Name not in ('Exclude list')
ただし、結合基準の両側 (LinkingTable
レコードとそれが依存するユーザー レコードの両方) を削除することに関心があります。私のソリューションは最初に Entity Framework コードであり、双方向の関係により複数のカスケード パスが作成されるため、カスケードをオンにすることはできません。
理想的には、次のようなものが欲しいです:
DELETE J, U
FROM Users U
inner join LinkingTable J on U.id = J.U_id
...
構文的にはこれはうまくいきませんが、このようなことが可能かどうか興味がありますか?