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
SQL Syntax - Hilfe erbeten
Re: SQL Syntax - Hilfe erbeten
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.
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.
Es gibt vier sie lauten Syntaxen.Inferi74 hat geschrieben:(gibts davon eigentlich einen Plural?)
@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.
@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.
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.
Schließlich kommst du einfachen Befehlen laut eigenen Aussagen zurecht, nicht in halbdeutsch sondern in SQL.
Wobei die Abfrage auch noch (relativ) einfach ist.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Standardmäßig antworte ich nicht auf PMs
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.
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.
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
Aktualisiere Group ID
Ich habe als Präfix phpbb2_, falls du einen anderen hast musst du sie dem entsprechend anpassen.
Gruß atrox
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)
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)
Gruß atrox