SORU
13 Ocak 2009, Salı


T-SQL: satır katıldı üzerinden silmek için Seçimi

Senaryo:

Hadi iki tablo, TableA ve TableB var. TableB birincil anahtar tek bir sütun (Teklif) ve TableA yabancı anahtar sütun.

Benim durumda, belirli bir satır ile bağlantılı TableA tüm satırları kaldırmak istiyorum TableB: birleşimler ile bunu Yapabilir miyim? Bu çektiği tüm satırları sil katıldı.

DELETE FROM TableA 
FROM
   TableA a
   INNER JOIN TableB b
      ON b.BId = a.BId
      AND [my filter condition]

Ya ben bunu yapmak için zorladım:

DELETE FROM TableA
WHERE
   BId IN (SELECT BId FROM TableB WHERE [my filter condition])

Sormamın nedeni ilk seçenek daha büyük tablolarla uğraşırken çok daha verimli olurdu gibi geliyor bana.

Teşekkürler!

CEVAP
13 Ocak 2009, Salı


DELETE TableA
FROM   TableA a
       INNER JOIN TableB b
               ON b.Bid = a.Bid
                  AND [my filter condition] 

çalışması gerekir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Atlantic Records

    Atlantic Rec

    15 Aralık 2006
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006
  • stokelycalm

    stokelycalm

    28 Aralık 2010