Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Zusammen,

folgendes habe ich: Tabelle1 und Tabelle2

Tabelle1 hat 2 spalten: sp1,sp2

Sp1 hat die einträge: 1,2,3,4,5,6

Sp2 hat noch keine Einträge, die ist nur ertstellt

Tabelle2 hat auch 2 spalten: sp1,sp2

sp1 hat die Einträge: 1,2,3

sp2 hat die Eintäge: a,b,c

jetzt möchte ich die sp2 von der Tabelle1 mit der sp2 der Tabelle2 updaten und schreibe mein statment so:

update Tabelle1 tl

set tl.sp2 = select tb.sp2 from Tabelle2 tb where tl.sp1 = tb.sp1)

where exists ( select * from Tabelle2 tb where tl.sp1 = tb.sp1)

leider bekomme ich den Fehler:Unterabfrage für eine Zeile liefert mehr als eine Zeile

hat das mit der Anzahl der Zeilen der Tabellen was zu zu tun ? wie kann ich mein Befehl eingeben?

Danke und Gruss

wirklich schade, das es keiner gibt, der sich zu meinem wirklichen Problem äußert,

Schön, dass du konsequent die Fehlermeldung misachtest und im forum deine aufgaben erledigt bekommen möchtest.

versuch mal deine unterabfragen mal einzeln, dann siehst du gleich wo der hund begraben ist.

ich rede ist von oracle 9i datenbanksystem,

Hallo baba007,

nachdem ich meine unterabfragen ausgeführt habe bin zu nichts gekommen. ich kann immer noch feststellen wo es dran liegen kann

ich denke , ein Forum ist unter anderen auch da um doch anderen bei ihren Problemen zu helfen bzw tipps zu geben. oder werden hier nur fragen beantwortet, die ein schwerigkeitsgrad für den eigenen EGO tragen.

Gruss

Moin,

update Tabelle1 tl

set tl.sp2 = select tb.sp2 from Tabelle2 tb where tl.sp1 = tb.sp1)

where exists ( select * from Tabelle2 tb where tl.sp1 = tb.sp1)

auffällig ist, dass dein Statement 2 where-klauseln hat. Das ist mindestens verdächtig, wenn nicht sogar hirnrissig. Zudem sind nicht alle Klammern paarweise vorhanden.

hth

Reinhold

Hallo Reinhold,

an den Klammern liegtes nicht, in meinem Statment sind sie schon richtig, und das paarweise auch.

wenn ich mit meinem unterabfrage selectiere , zeigt er mir das Ergebniss, das gerne hätte. sobald ich update klapt es nicht

Gruss

Hallo Reinhold,

an den Klammern liegtes nicht, in meinem Statment sind sie schon richtig, und das paarweise auch.

wenn ich mit meinem unterabfrage selectiere , zeigt er mir das Ergebniss, das gerne hätte. sobald ich update klapt es nicht

Gruss

Hallo, hast du den die dir gegebenen Antworten wenigstens getestet ?

- Es liegt trotzdem an den Klammern ...Ich zähle in deinem Beispiel 3 Klammern...und das ist nie gut

- Die 2. Where Clause ist unsinnig, wie Rheinhold geschrieben hat.

Und so funktionierts :

update TABLE_1 tl

set tl.sp2 = (select tb.sp2 from TABLE_2 tb where tl.sp1 = tb.sp1)

Gruss

Hallo, hast du den die dir gegebenen Antworten wenigstens getestet ?

- Es liegt trotzdem an den Klammern ...Ich zähle in deinem Beispiel 3 Klammern...und das ist nie gut

- Die 2. Where Clause ist unsinnig, wie Rheinhold geschrieben hat.

Und so funktionierts :

update TABLE_1 tl

set tl.sp2 = (select tb.sp2 from TABLE_2 tb where tl.sp1 = tb.sp1)

Gruss

diese Lösung habe schon ausprobiert, und leider erfolglos. die Tabellen Einträge sehen so aus: bitte, die Einträge genau angucken:

Tabelle1 hat 2 spalten: sp1,sp2

Sp1 hat die einträge: 1,2,3,4,5,6

Sp2 hat noch keine Einträge, die ist nur ertstellt

Tabelle2 hat auch 2 spalten: sp1,sp2

sp1 hat die Einträge: 1,2,3,9,10

sp2 hat die Eintäge: a,b,c

jetzt möchte ich die sp2 von der Tabelle1 mit der sp2 der Tabelle2 updaten und schreibe mein statment so:

update Tabelle1 tl

set tl.sp2 = (select tb.sp2 from Tabelle2 tb where tl.sp1 = tb.sp1)

where exists ( select * from Tabelle2 tb where tl.sp1 = tb.sp1)

es kommt immer noch ein fehler..

Gruss

Das Statement macht genau das was Du möchtest.

Nach der Ausführung sind in Tabelle1 die Tupel {1,a}, {2,b}, {3,c} vorhanden.

es kommt immer noch ein fehler..

Seufz. Jetzt schreibst schon seit Monaten immer wieder hier im Forum (und auch in anderen) und was musst Du immer mitangeben??? Aber was red' ich. Manche Leute lernen es einfach NIE.

Und was bedeutet bei Dir wenn Du sagst das SQL war "erfolglos"??

Dim

Hallo Dim,

ich habe in zwei anderen Foren die Frage gestellt, aus dem Grund, weil ich hier keine Reaktion bekommen habe.

mit mein SQL war erfolglos meine ich das ausführen des Statmentes

na ja , aus meiner Sicht habe ich mich verbessert, ich bin seit 2,5 Monate dabei und das auch nicht 100%. Ich habe noch schwirigkeit noch mit der unterabfragen.

Gruss

Nicht nur mit den, wenn ich das so lese :rolleyes:

Nicht nur mit den, wenn ich das so lese :rolleyes:

Hallo BABA,

was möchtest du mit deinem Satz sagen:

Gruss

Das bedeutet, dass Du nicht nur Propleme mit dem Verständnis von SQL hast, sondern auch immer noch nicht gelernt hast wie man richtig frägt.

Die Aussage: das SQL ist erfolglos ist keine ausreichende Fehlerbeschreibung mit der irgendjemand etwas anfangen könnte. Ebensowenig wie es ist ein Fehler aufgetreten und es funktioniert nicht

Des weiteren sage ich nochmal, dass das SQL welches dir von dbwizard bereits vor 4 Tagen gepostet wurde exakt das macht was Du haben möchtest (bzw. was Du uns beschrieben hast was Du machen möchtest).

Dim

Hallo Dim , BABA007,

soll ich jetzt aus der ganzen Disskution herausziehen, ich bin hier im Forum nicht erwünscht ?

Gruss

diese Lösung habe schon ausprobiert, und leider erfolglos. die Tabellen Einträge sehen so aus: bitte, die Einträge genau angucken:

es kommt immer noch ein fehler..

Gruss

- Du hast dein Beispiel gegenüber deinem OP angepasst ...Aber WAS genau funktioniert den nun nicht ? Fehlermeldung ?

Gruss

soll ich jetzt aus der ganzen Disskution herausziehen, ich bin hier im Forum nicht erwünscht ?

Du sollst daraus herauslesen, dass wir mehr spezifische Informationen brauchen und zwar die, nach denen ich schon mehrfach gefragt habe.

Wärst du nicht "erwünscht" würd dir einfach niemand antworten.

Dim

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.