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ş:
Nasıl bir yönlendirme sayfası jQuery k...
Nasıl Python fonksiyonu dekoratörler z...
Nasıl jQuery ile sayfa yenileme yapabi...
Nasıl bir kullanıcı bir liste öğesi üz...
Nasıl Python ile bir zaman gecikmesi y...