AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SELECT kontra UPDATE im SQL? Über zwei Tabellen?
Thema durchsuchen
Ansicht
Themen-Optionen

SELECT kontra UPDATE im SQL? Über zwei Tabellen?

Ein Thema von spacewolf · begonnen am 19. Apr 2009 · letzter Beitrag vom 20. Apr 2009
Antwort Antwort
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#1

SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 09:18
Datenbank: Firebird • Version: 2.x • Zugriff über: IBX
Moin,

hab grad n BUG in meiner neuronalen Schaltzentrale.

Die folgende SQL Abfrage funktioniert:

Code:
SELECT k.id,k.datum,k.kdatum,k.text from kartei k
left outer join karteiinfo ki on ki.kid = k.id
WHERE fremdid=4922
Das folgende SQL Update aber nicht?

Code:
UPDATE kartei k SET k.kdatum='01.01.1977'
left outer join karteiinfo ki on ki.kid = k.id
where fremdid=4922
hat jemand ne Idee was ich da nun falsch mach?
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 09:25
Wofür denn das join in dem Update? Funktioniert darin das überhaupt, das ist doch eigentlich zum Zusammensetzen der Ergebnistabelle einer Abfrage da.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#3

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 09:34
Hallo jaenicke,

sowas in der Art habe ich vor:

Delphi-Quellcode:
UPDATE kartei SET kdatum='01.01.1977'
where (kartei.id = karteiinfo.kid)
AND (karteiinfo.fremdid=4922)
also zwei tabellen sind miteinander verknüpft und die zweite tabelle stellt die bedinung für das update von der ersten tabelle und genau da ist mein problem...

der Andreas
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 09:37
Fehlt da nicht einfach nur die zweite Tabelle?UPDATE kartei, karteiinfo ...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#5

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 09:52
in dem falle kommt "token unknown" weil im update keine zwei tabellen aktzeptiert werden
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 09:54
Schau mal hier:
http://en.wikipedia.org/wiki/Update_(SQL)
Zitat:
The SQL:2003 standard does not support updates of a joined table. Therefore, the following method needs to be used. Note that the subselect in the SET clause must be a scalar subselect, i.e., it can return at most a single row.
Das Beispiel müsste das ja sein.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#7

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 10:02
mathematische Begründung mit 9 Buchstaben: "geht nicht"



habsch mir schon fast gedacht

bisher konnt ichs mit dem subselect umschiffen und dachte immer ich stell mich zu glatt an

danke Dir
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 11:00
Entweder 2 getrennte Updates oder schreib dir eine SP dafür
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 19. Apr 2009, 15:09
Vielleicht so...
SQL-Code:
UPDATE kartei k
SET kdatum = '01.01.1977'
WHERE EXISTS (SELECT *
              FROM karteiinfo
              WHERE kid = k.id
                AND fremdid = 4922)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#10

Re: SELECT kontra UPDATE im SQL? Über zwei Tabellen?

  Alt 20. Apr 2009, 06:31
Oder so:
SQL-Code:
UPDATE kartei k
SET kdatum = '01.01.1977'
WHERE ID IN (SELECT KID
             FROM karteiinfo
             WHERE fremdid = 4922)
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:10 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