Kalle_B: SQL-Kommando soll andere Sätze verändern

Hallöle,

habe folgendes Verknüpfungs- Problem:

In der Personendatei gibt es pro Firma einen "Chef" (Unter- Adresse = 1) und beliebig viel Mitarbeiter (adr_unt > 1)

Nun wurde per Programm beim "Chef" das Feld xxx mit einem Wert gefüllt.

Diesen Wert brauche ich auch in den Sätzen der Mitarbeiter.

Chef und Mitarbeiter haben einen gemeinsamen Kurznamen. (UNIQUE kurzname, adr_unt)

kurzname adr_unt xxx
-------- ------- ----------
Meyer          1          A
Meyer          2
Meyer          3
Müller         1          B
Müller         2

Wie also bekomme ich den Wert "A" in die Sätze der anderen Meyers und den Wert "B" in die anderen Müllers?

UPDATE personen SET xxx=  ???

Ach ja, MySQL hat die Version 3.23.58, also wohl nix mit Unter- Abfragen. Aber vielleicht geht's ja auch so.

Kalle

  1. Hi Kalle!

    kurzname adr_unt xxx


    Meyer          1          A
    Meyer          2
    Meyer          3
    Müller         1          B
    Müller         2

    Wie also bekomme ich den Wert "A" in die Sätze der anderen Meyers und den Wert "B" in die anderen Müllers?

    Wie machst Du eine select-Anweisung?

    select adr_unt from Tabelle

    Dann bekommst Du alle adr_unt. Wie sieht Dein select-Statement aus, wenn Du nur die adr_unt von "Meyer" haben willst? Ja, genau, da muß noch was an das select-statement. Und dieses etwas muß auch an das update-Statement!

    Gruß

    Hans

    1. Hi Hans!

      Dann bekommst Du alle adr_unt. Wie sieht Dein select-Statement aus, wenn Du nur die adr_unt von "Meyer" haben willst? Ja, genau, da muß noch was an das select-statement. Und dieses etwas muß auch an das update-Statement!

      update personen set xxx= ???  where adr_unt > 1

      Das sind die Sätze, die ich ändern möchte. Nur wie bekomme ich den Wert des Feldes xxx von adr_unt=1 bei gleichem Kurznamen?

      DAS ist mir nicht klar.

      Kalle

  2. Moin!

    In der Personendatei gibt es pro Firma einen "Chef" (Unter- Adresse = 1) und beliebig viel Mitarbeiter (adr_unt > 1)

    Nun wurde per Programm beim "Chef" das Feld xxx mit einem Wert gefüllt.

    Diesen Wert brauche ich auch in den Sätzen der Mitarbeiter.

    Chef und Mitarbeiter haben einen gemeinsamen Kurznamen. (UNIQUE kurzname, adr_unt)

    Nach den Regeln der Normalisierung trägst du das xxx-Kriterium in die Tabelle mit den Kurznamen ein und verknüpfst es, genau wie die Kurznamen, über diese n:m-Beziehung mit den einzelnen Mitarbeitern - bzw. bist damit schon direkt fertig, weil die Kurznamen mit den Mitarbeitern ja schon verknüpft _sind_.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. Moin, Sven!

      Nach den Regeln der Normalisierung trägst du das xxx-Kriterium in die Tabelle mit den Kurznamen ein und verknüpfst es, genau wie die Kurznamen, über diese n:m-Beziehung mit den einzelnen Mitarbeitern - bzw. bist damit schon direkt fertig, weil die Kurznamen mit den Mitarbeitern ja schon verknüpft _sind_.

      Aha - das ist der Fehler im DB-Konzept. Die Tabelle mit den Kurznamen gibt es nicht, sie sind lediglich Bestandteil der Personendatei.

      Kalle

      1. Moin!

        Nach den Regeln der Normalisierung trägst du das xxx-Kriterium in die Tabelle mit den Kurznamen ein und verknüpfst es, genau wie die Kurznamen, über diese n:m-Beziehung mit den einzelnen Mitarbeitern - bzw. bist damit schon direkt fertig, weil die Kurznamen mit den Mitarbeitern ja schon verknüpft _sind_.

        Aha - das ist der Fehler im DB-Konzept. Die Tabelle mit den Kurznamen gibt es nicht, sie sind lediglich Bestandteil der Personendatei.

        Wie hast du es dann hingekriegt, die Kurznamen UNIQUE zu machen? Oder ist das nur der fromme Wunsch gewesen, der durch Programmierung durchgesetzt wurde, aber nicht durch einen UNIQUE-Index?

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
        1. Moin!

          Wie hast du es dann hingekriegt, die Kurznamen UNIQUE zu machen?

          owner_id + kurzname + adr_unt ist UNIQUE

          wobei owner_id die Veranstaltung ist. Also Abgrenzung 2005 - 2006

          Kalle

        2. Hi,

          Wie hast du es dann hingekriegt, die Kurznamen UNIQUE zu machen?

          Auf die gleiche Weise, auf die er es hingekriegt hat, daß eine Firma genau einen Chef hat ... ;-) ;-) ;-)

          Oder ist das nur der fromme Wunsch gewesen,

          Vermutlich ...

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          O o ostern ...
          Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.