Announcement

Collapse
No announcement yet.

Anfängerfrage:Mehrere Anweisungen in einer Abfrage (MySQL-Version 5.0.24)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anfängerfrage:Mehrere Anweisungen in einer Abfrage (MySQL-Version 5.0.24)

    Hallo alle zusammen,

    vorweg muss ich sagen dass ich ein blutiger anfänger in Sachen SQL bin von daher mag euch meine Frage recht banal vorkommen... ;-)

    Jetzt zum Problem:

    Ich möchte mehrere der Nachstehenden Anweisungen in einer großen Abfrage unterbringen, jedoch erhalte ich immer folgenden Fehler:

    schlug fehl: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; INSERT INTO ab_forum_users (user_id,forum_id) SELECT ab_com_users.i' at line 1

    Meine Abfrage:

    INSERT INTO ab_forum_users (user_id,forum_id)
    SELECT ab_com_users.id,'2'
    FROM ab_com_users WHERE ab_com_users.cb_typ = 'x;

    INSERT INTO ab_forum_users (user_id,forum_id)
    SELECT ab_com_users.id,'3'
    FROM ab_com_users WHERE ab_com_users.cb_typ = 'y';

    INSERT INTO ab_forum_users (user_id,forum_id)
    SELECT ab_com_users.id,'5'
    FROM ab_com_users WHERE ab_com_users.cb_typ = 'z;

    Nochmal zum Verständis:
    Es wird ein Wert abgefragt, wenn dieser Wert z.b. = x dann wird in die Tabelle ab_forum_users in Spalte "user_id" die user_id aus der Tabelle ab_com_users eingetragen, und in die Spalte "forum_id" die jeweils angegebene Zahl.

    Jetzt wäre für mich interessant zu wissen, wie ich diese Abfragen hintereinander in einem Statement laufen lassen kann.

    Zum Schluss sollte noch erwähnt werden, dass die Anweisungen funktionieren wenn sie jeweils einzelnd ausgeführt werden.

    Soo ich hoffe ich konnte mich einigermaßen verständlich ausdrücken ;-)

    MFG
    Chris

  • #2
    Hallo Chris,

    ich würde dieses Update einfach in einer einzigen Anweisung ausführen:
    [highlight=sql]
    INSERT INTO ab_forum_users (user_id, forum_id)
    SELECT ab_com_users.id,
    if(ab_com_users.cb_typ = 'x', '2',
    if(ab_com_users.cb_typ = 'y', '3',
    if(ab_com_users.cb_typ = 'z', '5', null)))
    FROM ab_com_users WHERE ab_com_users.cb_typ in ('x', 'y', 'z');
    [/highlight]

    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!

    Comment

    Working...
    X