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

  • HER0R

    HER0R

    16 Aralık 2007
  • martin shervington

    martin sherv

    7 EKİM 2011
  • Ownage Pranks

    Ownage Prank

    13 AĞUSTOS 2007