+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Delete mit Subselect schlägt fehl

  1. #1
    TP-Member saphir2k macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    54

    Delete mit Subselect schlägt fehl

    Hallo zusammen,

    ich bräuchte mal dringend eure Hilfe. Das folgende SQL Statement schlägt leider fehl:

    Code:
    delete from group_2_user where user_id in (select u.id from user u LEFT JOIN group_2_user gu ON u.id = gu.user_id where u.active = 0 and group_group_id is not null)
    user = Usertabelle
    user_2_group = Beziehungstabelle zu Gruppen

    Ich möchte in dem Subselect alle Benutzer selektieren die a) noch nicht aktiviert sind (active = 0) und einer Gruppe zugeordnet sind (group_group_id is not null). Und genau diese User möchte ich löschen.

    mySQL wirft allerdings folgenden Fehler:
    "You can't specify target table 'group_2_user' for update in From clause"

    Ich nehme an, dass ihn stört das ich ein delete auf eine Tabelle mache und diese im Subselect verwendet wird.

    Wen dem so ist, wie würde ich sonst vorgehen?

    Bin für jeden Tip dankbar.

    Grüße,
    Thorsten

  2. #2
    TP-Insider Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Avatar von Settler
    Registriert seit
    Feb 2008
    Ort
    Marl
    Beiträge
    805
    Quick&Dirty:
    erstelle eine Tabelle mit den Ergebnis IDs und lösch dann aus der Tabelle.

  3. #3
    TP-Member saphir2k macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    54
    Kann ich mit einem Statement Tabelle erzeugen und aus der erstellten Tabelle lesen?

  4. #4
    TP-Supporter Bruecksen hilft, wo's geht Bruecksen hilft, wo's geht Bruecksen hilft, wo's geht Avatar von Bruecksen
    Registriert seit
    Mar 2002
    Ort
    Stuttgart
    Beiträge
    370
    klar
    PHP-Code:
    CREATE TABLE temp SELECT u.id FROM user u LEFT JOIN group_2_user gu ON u.id gu.user_id where u.active AND group_group_id is not null 
    und dann machst du dein delete einfach auf der temp table

    PHP-Code:
    DELETE FROM group_2_user WHERE user_id IN SELECT id FROM temp
    Viele Grüße
    Matthias

    Viele Grüße
    Matthias.
    http://www.bruecksen.de


  5. #5
    TP-Member saphir2k macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    54
    Vielen Dank, für eure schnelle Hilfe. Die Lösung klingt sehr gut und praktikabel.

+ Antworten

Ähnliche Themen

  1. phpmyadmin 3.2.0 update schlägt fehl
    Von marco.breuel im Forum TYPO3
    Antworten: 8
    Letzter Beitrag: 16.07.2008, 15:58
  2. Display Position schlägt fehl
    Von PNC - 1000 im Forum HTML & CSS
    Antworten: 4
    Letzter Beitrag: 31.01.2008, 00:22
  3. Datei uploaden schlägt fehl.
    Von zy0n im Forum Traum-Dynamik
    Antworten: 2
    Letzter Beitrag: 10.07.2006, 17:34
  4. PDF Erstellung mit Distiller schlägt fehl
    Von Jasonbark im Forum PrePress
    Antworten: 13
    Letzter Beitrag: 23.08.2004, 21:32
  5. Array -> Deserialisierung schlägt fehl
    Von seb im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 26.08.2002, 12:48

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51