![]() |
Datenbank: Interbase • Version: 7.1 • Zugriff über: IBExpress
Update mit Subselect
Hallo an alle, die sich mit SQL auskennen...
ich habe folgende Datenbankstruktur (1:1 Beziehung) Tabelle A ---------- id_tabelleA id_tabelleB Tabelle B --------- id_tabelleB Nun möchte ich gerne die Relation zwischen beiden Tabellen ändern Tabelle A ---------- id_tabelleA (id_tabelleB) wird nach der Aktualisierung gelöscht Tabelle B --------- id_tabelleB id_tabelleA Nun ist meine Datenbank aber schon mit Daten gefüllt. Mein Problem ist es jetzt, wie ich die Daten von A nach B schaffe (Wert der IDs) Also in etwa:
SQL-Code:
Danke für jeden Tip!!!
Update Tabelle B SET B.id_tabelleA = (SELECT A.id_tabelleA FROM Tabelle A where A.id_tabelleB=B.id_tabelleA)
|
Re: Update mit Subselect
Wenn es sich ume eine 1:1-Beziehung handelt würde ich die IDs synchronisieren.
|
Re: Update mit Subselect
Zitat:
|
Re: Update mit Subselect
Tabelle A
---------- id_tabelle Tabelle B --------- id_tabelle A.id_tabelle = B.id_tabelle |
Re: Update mit Subselect
Zitat:
Ich tausche ja bei beiden Tabellen die Fremschlüssel aus und brauche nun ein SQL-Statement, das die Beziehung zwischen beiden Tabelle wieder herstellt. |
Re: Update mit Subselect
Mein Vorschlag wäre ja, nicht 2 verschiedene IDs sondern die selbe zu nehmen.
SQL-Code:
alter TabelleA add id_tabelle;
update TabelleA set id_tabelle = id_tabelleB; alter TabelleA drop id_tabelleA; alter TabelleA drop id_tabelleB; |
Re: Update mit Subselect
Nee das geht so nicht,..
SQL-Code:
So in etwa stelle ich mir das vor. Leider kann man keine 2 Tabellen im Update-Statement eingeben
update tabelleB B, tabelleA A set B.id_tabelleA=A.id_tabelleA where A.id_tabelleB = B.id_tabelleB;
|
Re: Update mit Subselect
SQL-Code:
update tabelleB B set B.id_tabelleA=(select A.id_tabelleB where A.id_tabelleA = B.id_tabelleA);
|
Re: Update mit Subselect
Zitat:
The next statement causes the following error: multiple rows in singleton select |
Re: Update mit Subselect
versuchs mal mit distinct oder first 1 im Subquery
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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