![]() |
Datenbank: Firebird • Zugriff über: -
Update mit Join ?
Gibt es eigentlich soetwas
SQL-Code:
POSITION
UPDATE POSITION P SET P.LEVEL = T.LEVEL
INNER JOIN TRANSAKTION T ON T.PARENTID = P.ID WHERE T.TYP = 9 ID LEVEL 1 <ignorieren> 2 3 3 <ignorieren> 4 <ignorieren> 5 <ignorieren> 6 3 TRANSAKTION PARENTID LEVEL TYP 2 3 9 5 3 3 6 3 9 |
Re: Update mit Join ?
Das geht mit UPDATE....FROM
Es ist klar, dass immer nur eine Tabelle upgedatet werden kann. Die Daten können aber aus einer Abfrage selektiert werden:
SQL-Code:
UPDATE POSITION SET LEVEL = T.LEVEL
FROM POSITION P INNER JOIN TRANSAKTION T ON T.PARENTID = P.ID WHERE T.TYP = 9 |
Re: Update mit Join ?
Kann es sein, das Firebird das UPDATE .... FROM nicht kann ?
schreibt mir das es FROM nicht kennt. |
Re: Update mit Join ?
Abgesehen von den unschoenen bezeichnern
position + level sind schluesselworte und eine Tabelle Transaktion zu nennen ist wohl auch ein bisserl verwirrend. Nun ja zu deinem Problem: Die Abfrage ist wie oben angegeben synt. nicht korrekt. es muss wohl eher sowas sein:
Delphi-Quellcode:
UPDATE "POSITION" P1 SET P1."LEVEL" =
(SELECT min(T."LEVEL") FROM "POSITION" P INNER JOIN TRANSAKTION T ON T.PARENTID = P.ID WHERE T.TYP = 9 ) |
Re: Update mit Join ?
Zitat:
Zitat:
Daher wollte ich fragen, ob ein schönerer Weg dafüt existiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz