Kalle_B: update hängt von einer zweiten Tabelle ab

Hallöle,

habe das folgende Problem in MySQL mit einer zeitaufwändigen while- Schleife gelöst und möchte es gerne mit EINEM EINZIGEN SQL- Kommando machen.

Auf einer Messe wünschen Aussteller den Kontakt mit Besucher- Firmen. Dieser Kontaktwunsch erzeugt den Eintrag prio_3 = 1 in der Kontakttabelle:

aussteller_id besucher_id prio_3
------------- ----------- ------
4711          08_15       1
4711          08_16       0
4711          08_36       1
4711          08_37       0

Allerdings nur beim "Chef" der Besuchergruppe, gekennzeichnet durch adr_unt = 1 in der Adresstabelle. Nun muss für die "Kollegen" dieser Aussteller- Wunsch in der Kontakttabelle auch gesetzt werden.

id    Firma  adr_unt
----- ------ -------
08_15 ABC    1
08_16 ABC    2
08_36 XYZ    1
08_37 XYZ    2
08_38 XYZ    3

UPDATE kontakte
SET    prio_3=1
WHERE  ???

Lieben Gruß, Kalle

  1. Hallo Kalle,

    habe das folgende Problem in MySQL mit einer zeitaufwändigen while- Schleife gelöst und möchte es gerne mit EINEM EINZIGEN SQL- Kommando machen.

    wo ist das Problem?
    Ach ja, ich sehe das Problem: Du verwendest eine völlig unbekannte MySQL-Version. Ich weiß, dass Du verschiedene verwendest und möchte einfach wissen, auf welcher Version das laufen soll.

    Auf einer Messe wünschen Aussteller den Kontakt mit Besucher- Firmen. Dieser Kontaktwunsch erzeugt den Eintrag prio_3 = 1 in der Kontakttabelle:

    aussteller_id besucher_id prio_3


    4711          08_15       1
    4711          08_16       0
    4711          08_36       1
    4711          08_37       0

    Allerdings nur beim "Chef" der Besuchergruppe, gekennzeichnet durch adr_unt = 1 in der Adresstabelle. Nun muss für die "Kollegen" dieser Aussteller- Wunsch in der Kontakttabelle auch gesetzt werden.

    id    Firma  adr_unt


    08_15 ABC    1
    08_16 ABC    2
    08_36 XYZ    1
    08_37 XYZ    2
    08_38 XYZ    3

    UPDATE kontakte
    SET    prio_3=1
    WHERE  ???

      
    UPDATE kontakte  
    SET prio_3 = 1  
    WHERE besucher_id IN  
    (SELECT id FROM Adresstabelle WHERE Firma = <diese spezielle Firma>)  
    
    

    Aus vergangenen Postings weißt Du, das Subqueries erst ab MySQL 4.1 unterstützt werden. Du solltest in Deinem eigenen Interesse dafür sorgen, dass Du mindestens diese Version zur Verfügung hast, noch besser MySQL 5.0.12 oder neuer.

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzenz,

      danke für deine Antwort.

      Dann muss ich es bei einer PHP- Schleife belassen.

      Kalle