SORU
18 AĞUSTOS 2009, Salı


Nasıl üye ile bir UPDATE deyimi SQL yapabilir miyim?

Veri ile SQL Server 2005'te bu tabloyu güncelleştirmek gerekiyor 'ana' tablosu, aşağıya bakın: . onun

satış

id (int)
udid (int)
assid (int)

ud

id  (int)
assid  (int)

sale.assid ud.assid güncelleme için doğru değer içeriyor. Bu sorgu ne yapacak? Birleşim düşünüyorum ama eğer bu mümkün olup olmadığından emin değilim.

CEVAP
18 AĞUSTOS 2009, Salı


Çok kullanmakta olduğunuz bağlıdır. Burada ANSI (nam-ı diğer herhangi bir veritabanı üzerinde çalışması gerekir), MySQL, SQL Server, Oracle ve bunu yapmak için yolu vardır. ANSI yöntemi diğer iki yöntemden daha yavaş olacaktır, ama eğer MySQL, SQL Server veya Oracle kullanıyorsanız, gitmek için tek yol.

ANSI:

update ud 
  set assid = (
               select sale.assid 
                 from sale 
                where sale.udid = ud.udid
              )
 where exists (
               select * 
                 from sale 
                where sale.udid = ud.udid
              );

MySQL:

update ud u
inner join sale s on
    u.id = s.udid
set u.assid = s.assid

SQL Server:

update u
set u.assid = s.assid
from ud u
    inner join sale s on
        u.id = s.udid

Oracle:

update
    (select
        u.assid as new_assid,
        s.assid as old_assid
    from ud u
        inner join sale s on
            u.id = s.udid) up
set up.new_assid = up.old_assid

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • Michael Zhang

    Michael Zhan

    8 EYLÜL 2012
  • MrChiCity3

    MrChiCity3

    14 NİSAN 2008