AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Update mit Subselect
Thema durchsuchen
Ansicht
Themen-Optionen

Update mit Subselect

Ein Thema von Nico80 · begonnen am 19. Jul 2007 · letzter Beitrag vom 19. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#1

Update mit Subselect

  Alt 19. Jul 2007, 08:39
Datenbank: Interbase • Version: 7.1 • Zugriff über: IBExpress
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:
Update Tabelle B SET B.id_tabelleA = (SELECT A.id_tabelleA FROM Tabelle A where A.id_tabelleB=B.id_tabelleA) Danke für jeden Tip!!!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Update mit Subselect

  Alt 19. Jul 2007, 08:42
Wenn es sich ume eine 1:1-Beziehung handelt würde ich die IDs synchronisieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Update mit Subselect

  Alt 19. Jul 2007, 08:45
Zitat von mkinzler:
Wenn es sich ume eine 1:1-Beziehung handelt würde ich die IDs synchronisieren.
Und wie?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Update mit Subselect

  Alt 19. Jul 2007, 08:47
Tabelle A
----------
id_tabelle


Tabelle B
---------
id_tabelle

A.id_tabelle = B.id_tabelle
Markus Kinzler
  Mit Zitat antworten Zitat
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Update mit Subselect

  Alt 19. Jul 2007, 08:55
Zitat von mkinzler:
Tabelle A
----------
id_tabelle


Tabelle B
---------
id_tabelle

A.id_tabelle = B.id_tabelle
So ganz kapiere ich das noch nicht.
Ich tausche ja bei beiden Tabellen die Fremschlüssel aus und brauche nun ein SQL-Statement, das die Beziehung zwischen beiden Tabelle wieder herstellt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Update mit Subselect

  Alt 19. Jul 2007, 09:06
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;
Markus Kinzler
  Mit Zitat antworten Zitat
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Update mit Subselect

  Alt 19. Jul 2007, 09:25
Nee das geht so nicht,..

update tabelleB B, tabelleA A set B.id_tabelleA=A.id_tabelleA where A.id_tabelleB = B.id_tabelleB; So in etwa stelle ich mir das vor. Leider kann man keine 2 Tabellen im Update-Statement eingeben
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Update mit Subselect

  Alt 19. Jul 2007, 09:32
update tabelleB B set B.id_tabelleA=(select A.id_tabelleB where A.id_tabelleA = B.id_tabelleA);
Markus Kinzler
  Mit Zitat antworten Zitat
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: Update mit Subselect

  Alt 19. Jul 2007, 09:43
Zitat von mkinzler:
update tabelleB B set B.id_tabelleA=(select A.id_tabelleB where A.id_tabelleA = B.id_tabelleA);
Folgende Fehlermeldung:

The next statement causes the following error:
multiple rows in singleton select
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Update mit Subselect

  Alt 19. Jul 2007, 09:46
versuchs mal mit distinct oder first 1 im Subquery
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz