Quick&Dirty:
erstelle eine Tabelle mit den Ergebnis IDs und lösch dann aus der Tabelle.
Hallo zusammen,
ich bräuchte mal dringend eure Hilfe. Das folgende SQL Statement schlägt leider fehl:
user = UsertabelleCode: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_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
Quick&Dirty:
erstelle eine Tabelle mit den Ergebnis IDs und lösch dann aus der Tabelle.
Kann ich mit einem Statement Tabelle erzeugen und aus der erstellten Tabelle lesen?
klar
und dann machst du dein delete einfach auf der temp tablePHP-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 = 0 AND group_group_id is not null
Viele GrüßePHP-Code:DELETE FROM group_2_user WHERE user_id IN ( SELECT id FROM temp)
Matthias
Viele Grüße
Matthias.
http://www.bruecksen.de
Vielen Dank, für eure schnelle Hilfe. Die Lösung klingt sehr gut und praktikabel.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)