30 NİSAN 2009, PERŞEMBE
MySQL kullanarak GÜNCELLEME birden fazla tablo BİRLEŞTİRME SOL
İki tablo var, ve bir SOL tüm satırlar için T1 alanları KATILIN güncellemek istiyorum.
Kolay bir örnek için, aşağıdaki tüm satırlar sonuç-set güncelleme:
SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.id = T2.id WHERE T2.id IS NULL
MySQL manual der ki:
Birden fazla tabloda UPDATE deyimi katılmak herhangi bir türünü SEÇİN tablolar, SOL BİRLEŞTİRME gibi izin kullanabilir.
Ama birden çok tablo belgelenmiş GÜNCELLEME yapmak için doğru sözdizimi bulabilirsiniz.
Doğru sözdizimi nedir?
CEVAP
30 NİSAN 2009, PERŞEMBE
UPDATE t1
LEFT JOIN
t2
ON t2.id = t1.id
SET t1.col1 = newvalue
WHERE t2.id IS NULL
SELECT
için daha verimliNOT IN
/ NOT EXISTS
kullanımı: kullanmak için olacağını unutmayın
SELECT t1.*
FROM t1
WHERE t1.id NOT IN
(
SELECT id
FROM t2
)
Performans detayları için: benim blog makaleye bakın
- Finding incomplete orders:
LEFT JOIN
performans 10* *göre
Ne yazık ki, MySQL
UPDATE
bir ifade, bir alt sorgu içinde hedef tablo kullanma izin vermiyor, daha az etkili LEFT JOIN
sözdizimi ayrılmamak gerekir.
Bunu Paylaş:
Bir SQL Server'da tablo BİRLEŞTİRME ku...
SQL sol vs birden fazla tablo satırı b...
Nasıl birden fazla tablo İÇ BİRLEŞİM S...
SQL birden fazla tablo birleştirme...
MVC3 kullanarak Varlık Çerçevesi için ...