Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 5 von 5
  1. #1
    Neuer Benutzer
    Registriert seit
    26.11.2007
    Beiträge
    6

    Standard Update mit Select unterabfrage

    Hallo,
    ich habe zwei tabellen "inhalt" und "kisten"

    inhalt hat die Felder
    Vorname
    Nachname
    Vorgang (Ja oder Nein)
    Kisten-Nr

    kisten hat die Felder
    Kisten-Nr
    KisteFrei

    Jetzt möchte ich eine Update in Tabelle "kisten" machen, sobald in Tabelle inhalt im Feld `Vorgang`'Ja' steht soll in
    Tabelle "kisten" das Feld `Kistefrei` mit 'Ja' besetzt werden, natürlich bezogen auf die dazugehörige Kisten-Nr

    So habe ich es probiert
    Der select liefert mir genau das was ich brauche:
    Code:
    select `Vorgang` ,`Kisten-Nr` from inhalt  WHERE `Vorgang`='Ja'
    kombiniert mit Update geht nicht ...
    Code:
    update set kisten `KisteFrei`,`Kisten-Nr` = (select `Vorgang` ,`Kisten-Nr` from inhalt  WHERE `Vorgang`='Ja')
    Wie kombiniere ich beide Abfragen?????

  2. #2
    Forenheld
    Registriert seit
    26.02.2003
    Ort
    Sachsen-Anhalt
    Beiträge
    5.177

    Standard

    Zitat Zitat von SimplyFred Beitrag anzeigen
    ...Jetzt möchte ich eine Update in Tabelle "kisten" machen, sobald in Tabelle inhalt im Feld `Vorgang`'Ja' steht soll in
    Tabelle "kisten" das Feld `Kistefrei` mit 'Ja' besetzt werden, natürlich bezogen auf die dazugehörige Kisten-Nr...
    Hallo,
    das Zauberwort heißt Subselect:
    Code SQL:
    UPDATE kisten a SET
     a.Kistefrei = 'Ja'
    WHERE a.Kisten-Nr IN (
      SELECT b.Kisten-Nr FROM inhalt b WHERE b.Vorgang = 'Ja'
    )

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

  3. #3
    Neuer Benutzer
    Registriert seit
    26.11.2007
    Beiträge
    6

    Standard

    Zitat Zitat von Falk Prüfer Beitrag anzeigen
    Hallo,
    das Zauberwort heißt Subselect:
    Code SQL:
    UPDATE kisten a SET
     a.Kistefrei = 'Ja'
    WHERE a.Kisten-Nr IN (
      SELECT b.Kisten-Nr FROM inhalt b WHERE b.Vorgang = 'Ja'
    )

    Gruß Falk
    Vielen Dank für den Tip,

    aber noch eine Frage hab ich dazu:
    Was bedeutet das "a" bzw. "b" ?
    Was soll ich dafür setzen?

  4. #4
    Neuer Benutzer
    Registriert seit
    26.11.2007
    Beiträge
    6

    Standard Bingo - ich habs !!!!

    UPDATE kisten SET `KisteFrei`='Ja' WHERE `Kisten-Nr`IN (SELECT `Kisten-Nr` FROM inhalt WHERE `Vorgang` = 'Ja')

    Vielen Dank !!!!!!

  5. #5
    Forenheld
    Registriert seit
    26.02.2003
    Ort
    Sachsen-Anhalt
    Beiträge
    5.177

    Standard

    Zitat Zitat von SimplyFred Beitrag anzeigen
    Vielen Dank für den Tip,

    aber noch eine Frage hab ich dazu:
    Was bedeutet das "a" bzw. "b" ?
    a und b sind hier (nichtssagende) Tabellenaliase. Bei dieser Form des Subselects sind zwar keine Aliase notwendig, ich rate jedoch generell zur Verwendung, um bei gleichlautenden Feldnamen in unterschiedlichen Tabellen Verwechslungen auszuschließen.
    Zitat Zitat von SimplyFred Beitrag anzeigen
    Was soll ich dafür setzen?
    Du kannst es bei a und b belassen (um Schreibarbeit zu sparen) oder nimm etwas sprechenderes wie kisten und inhalt oder den Kompromiss kst und inh .

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •