Seite 1 von 1

SQL Syntax - Hilfe erbeten

Verfasst: 29.05.2008 06:36
von Inferi74
Mit den einfacheren SQL-Syntax (gibts davon eigentlich einen Plural?) komme ich zurecht, aber hier habe ich ein größeres Ansinnen und wäre für eure Hilfe dankbar, ihr Fachleute. :)

Problemstellung:
Ich möchte alle User, die mindestens einen Beitrag geschrieben haben, zu dieser Gruppe hinzufügen. Sollten die User bereits in einer anderen Gruppe sein, so soll die Gruppe 2299 nur hinzugefügt aber die bisherigen Gruppenmitgliedschaften nicht überschrieben werden.

Also auf halbdeutsch:
Wenn in der Tabelle phpbb_users das Feld user_posts > 0 ist, dann soll er den User der Gruppe 2299 hinzufügen.

Sonstiges:
Ich nutze phpBB 2.0.21
Die ID der neuen Gruppe ist 2299

Re: SQL Syntax - Hilfe erbeten

Verfasst: 29.05.2008 13:37
von Xwitz
Du willst das alles in einer Anweisung machen? Da bin ich überfragt.
Wenn Du es mit mehreren Anweisung machen willst, dann sind die einzelnen Anweisungen, denke ich, alle einfach. Dann beschreibe mal etwas genauer worin das Problem liegt und zeige, was Du bisher hast.
Inferi74 hat geschrieben:(gibts davon eigentlich einen Plural?)
Es gibt vier ;) sie lauten Syntaxen.

Verfasst: 29.05.2008 17:22
von Boecki91
Warum benutzt du eine Veraltete Version?

phpBB 2.0.23 ist aktuell.

Verfasst: 29.05.2008 20:31
von Inferi74
@Xwitz: Klar, ich kann auch mehrere Anweisungen nacheinander ausführen.


@Boecki91: Dank für deinen Hinweis. Ich bin mir dessen bewusst dass die Version nicht aktuell ist. Ich glaube nicht, dass der von mir angefragte SQL Syntax sich deshalb unterscheidet, daher wäre ich an einer Hilfestellung zu meiner eigentlichen Frage ehrlich mehr interessiert.

Verfasst: 29.05.2008 20:35
von Boecki91
Für mich sahst/siehst du wie ein User aus, der sich weder die Mühe macht zu updaten, noch seine Ansätze zeigt.

Schließlich kommst du einfachen Befehlen laut eigenen Aussagen zurecht, nicht in halbdeutsch sondern in SQL.

Wobei die Abfrage auch noch (relativ) einfach ist.

Verfasst: 29.05.2008 20:43
von Inferi74
Selbstverständlich gelobe ich Besserung, auch wenn mir dein zweiter Beitrag in der Sache ebenso hilfreich war wie deine erste Wortmeldung.

So bleibt mir eigentlich auch nicht mehr zu sagen, als dass ich es natürlich aufrichtig bedauere deinen Erwartungen nicht zu entsprechen. Selbstverständlich sollte es mir ein Anliegen sein, in den Aktivitäten, die mein Forum betreffen, deinen Maßstäben gerecht zu werden, doch ich fürchte, das ich dem zumindest im Moment nicht nachkommen kann. Ich bitte dich daher für die bisher unterlassenen Mühen meinerseits um Verzeihung.

Verfasst: 29.05.2008 22:46
von atrox
Selbstverständlich legst du vor dem Ausführen des MySQL Befehls ein Backup deiner phpbb2_user_group an (also die Tabelle kopieren).

Stellst du allerdings später fest, dass etwas nicht funktioniert und du möchtest die Tabelle zurückkopieren, gehen die neuen Daten alle verloren.
Deshalb ist es besser alle betroffenen Datensätze nochmal separat zu speichern, sodass am Ende nur die betroffen Datensätze (im Fehlerfall) ersetzt werden können und die neuen erhalten bleiben.


Kopiere alle betroffene Datensätze nach Tabelle phpbb2_user_group_bkp

Code: Alles auswählen

INSERT INTO `phpbb2_user_group_bkp` (`group_id`, `user_id`,  `user_pending`) SELECT `group_id`, `user_id`, `user_pending` FROM `phpbb2_user_group` WHERE `user_id` = (SELECT `user_id` FROM `phpbb2_users` WHERE `user_posts` > 0)
Aktualisiere Group ID

Code: Alles auswählen

UPDATE `phpbb2_user_group` SET `group_id` = 2299 WHERE `user_id` = (SELECT `user_id` FROM `phpbb2_users` WHERE `user_posts` > 0)
Ich habe als Präfix phpbb2_, falls du einen anderen hast musst du sie dem entsprechend anpassen.

Gruß atrox