UPDATE abc.tab1
SET stl124 = 0
WHERE stl124 IN (SELECT
stl124
FROM abc.tab1
INNER JOIN
abc.tab2
ON scitp4 = ctid4
WHERE stl124 = 1 AND ctsp = 0
AND spi4 = vpid);
Typischerweise ist eine EXISTS Bedingung schneller als eine IN Bedingung. Ausserdem scheint mir die Wiederholung von tab1
im sub-query unnötig.
Leider wird absolut nicht klar welche Spalte zu welcher Tabelle gehört, aber möglicherweise ist das folgende äquivalent und schneller:
UPDATE abc.tab1 t1
SET stl124 = 0
WHERE EXISTS (SELECT *
FROM abc.tab2 t2
WHERE t1.stl124 = t2.stl124
AND t2.scitp4 = t1.ctid4
AND t2.stl124 = 1
AND t2.ctsp = 0
AND tab1.spi4 = t2.vpid);
1 „Gefällt mir“
Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.