![]() |
Datenbank: Firebird • Version: 2.0.3 • Zugriff über: ibexpert
warum funktioniert dieses update nicht?
moin DPler,
folgendes update liefert nicht das gewünschte ergebnis:
SQL-Code:
und ich raff's net wieso?
update adressen set
KundenRef = (select kunden.Id from kunden where kunden.adresseRef = adressen.ID) HILFE! |
Re: warum funktioniert dieses update nicht?
Und so?
SQL-Code:
update adressen set
KundenRef = (select kunden.Id from kunden,adressen where kunden.adresseRef = adressen.ID) |
Re: warum funktioniert dieses update nicht?
Oder
SQL-Code:
update adressen a set
KundenRef = (select kunden.Id from kunden where kunden.adresseRef = a.ID) |
Re: warum funktioniert dieses update nicht?
Zitat:
Zitat:
|
Re: warum funktioniert dieses update nicht?
Noch ein Versuch aus dem Kopf:
SQL-Code:
UPDATE Adressen A
SET KundenRef = (SELECT kunden.Id FROM kunden JOIN Adressen B ON B.adressenId = kunden.adresseRef) WHERE A.Id = B.Id |
Re: warum funktioniert dieses update nicht?
Zitat:
Was ist wenn du ein "LIMIT 1" in die Select-Anweisung reinschreibst? mfG mirage228 |
Re: warum funktioniert dieses update nicht?
Firebird kennt kein "LIMIT" (leider weiß ich jetzt nicht aus dem Kopf, wie dort die Entsprechung lautet).
|
Re: warum funktioniert dieses update nicht?
Zitat:
SQL-Code:
bzw. Interbase Syntax
select first 1 ...
SQL-Code:
oder halt mit distinct
select ... rows 1
|
Re: warum funktioniert dieses update nicht?
Thx, wieder was gelernt.
|
Re: warum funktioniert dieses update nicht?
Zitat:
|
Re: warum funktioniert dieses update nicht?
Dann setz doch die schließende Klammer ganz an den Schluss.
|
Re: warum funktioniert dieses update nicht?
Zitat:
|
Re: warum funktioniert dieses update nicht?
Versuch es mal ohne JOIN:
SQL-Code:
update adressen a set
KundenRef = (select distinct kunden.Id from kunden where kunden.adresseRef = a.ID) |
Re: warum funktioniert dieses update nicht?
So langsam wird es Zeit, Deine Tabellenstruktur mal bekannt zu machen (vor allem die Relation).
|
Re: warum funktioniert dieses update nicht?
Zitat:
SQL-Code:
select a.id, count(k.Id)
from Adressen a left join Kunden k on k.adresseRef = a.id group by a.id having count(k.Id) > 1 |
Re: warum funktioniert dieses update nicht?
Zitat:
Dein SQL ist korrekt, und meine Tabellen haben keine Dups. Hab jetzt einfach mal ein älteres backup eingespielt (Ist noch DevPhase :) ) und zäume das Pferd jetzt von hinten auf. Irgendwo hab ich bestimmt einen Fehler gemacht, hab aber keine Lust weiterhin danach zu suchen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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