2016-03-30 17 views
-2

Birden çok kaydı nasıl select deyimi ile birlikte güncelleyeceğinizi merak ediyorum. 100 kayıt etrafındaSeçme ifadesi ile birden çok kaydı güncelleştirin

Update table set new_col = (select col1 from tab1, tab2 where tab1.id =tab2.neid) 

burada seçme alt sorgu döner ve bu 100 kayıtları için benim new_col güncellemek istediğiniz:

Bu şekilde yapmak istiyorum.

Bu görevi yerine getirmenin bir yolu var mı?

Güncelleştirme seçmeyi kullanmayı denedim, ancak başarılı olmadı.

Örnek:

Tablo 3 sütunlu yaklaşık 10 kayıtları içerir. Örneğin, mevcut tabloya bir tane daha sütun eklemek istiyorum.

Şimdi 4 sütunum var. Yeni eklenen sütun, bu 10 kayıt için değerleri başka bir tablodan almalıdır.

Peki bunu nasıl yapardım?

Teşekkür

Oracle'de
+2

Lütfen sorunuzunuzu düzenleyin ve örnek verileri ve istenilen sonuçları verin. Senin sorunun çok belirsiz. –

+0

@inityk Sorunuzu güncellediniz, ancak bize yapmaya çalıştığınız şeyi bize bildiren fazladan bilgi vermediniz. Lütfen, güncellemeden sonra görmeyi beklediğiniz çıktıyla birlikte tablolarınızda örnek veriler sağlamak için sorunuzu güncelleyin. ([İşte bir soru örneğidir] (http://stackoverflow.com/questions/31852230/calculation-in-two-columns-of-different-row-in-sql) ki bunu yapar.) – Boneist

cevap

0

, bir korelasyon alt sorgu kullanarak bunu yapabilirsiniz. Sen güncellemek için hangi satırı belirlemek için bazı sütun gerekir:

Update table t 
    set new_col = (select col1 
        from tab1 join 
         tab2 
         on tab1.id = tab2.neid 
        where tab?.?? = t.?? 
       ) 
    where exists (select 1 
        from tab1 join 
         tab2 
         on tab1.id = tab2.neid 
        where tab?.?? = t.?? 
       ); 

Sen sorusu alt sorguda her satırı eşleşmesi dış tablodaki satırları tanımlamak için nasıl belirtmez. Bu nedenle, ? ve ??.

İlgili konular