Birçok kaydın birleştirildiği bir veritabanımız var. Ve bir kişinin birçok birleşik kimliğe sahip olması alışılmadık bir durum değildir. Her kişinin ilk kimliğini ve en son kimliğini takip eden bir tablo oluşturmak istiyorum. Bunu yapmanın en iyi yolunun olduğunu düşünüyorum ama WHILE döngüsünü nasıl yazacağımı bilmiyorum.WHERE döngüsü, plsql'de [select by connection] ile ilgili önceki ifadeye göre nasıl kullanılır?
Orijinal tablo aşağıdaki gibidir:
Table1
old_id new_id
001 001
002 002
001 003
004 004
003 005
005 006
Birincisi, ben Sonra
Table2
old_id new_id
001 001
002 002
004 004
Ben döngü istiyorum deyimi kadar olmalıdır ki çalıştırdıktan sonra
CREATE Table2 AS
SELECT *
FROM Table1
WHERE old_id = new_id
;
çalıştırmak Yapmak için daha fazla güncelleme yok:
UPDATE Table2
SET new_id = (SELECT b.new_id
FROM Table1 AS a
JOIN Table1 AS b ON b.old_id = a.new_id
WHERE b.old_id != b.new_id)
;
ben kurmaya çalışıyorum çıkan tabloya elde edene kadar: Yardımlarınız için şimdiden
Table2
old_id new_id
001 006
002 002
004 004
teşekkürler.
"Önceden bağlan" a bakın Bir hiyerarşiyi taramanıza olanak sağlar – xQbert