SQL Syntax - Hilfe erbeten

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Inferi74
Mitglied
Beiträge: 93
Registriert: 22.02.2007 18:15

SQL Syntax - Hilfe erbeten

Beitrag 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
Xwitz
Mitglied
Beiträge: 1104
Registriert: 21.06.2005 21:41

Re: SQL Syntax - Hilfe erbeten

Beitrag 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.
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Warum benutzt du eine Veraltete Version?

phpBB 2.0.23 ist aktuell.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Inferi74
Mitglied
Beiträge: 93
Registriert: 22.02.2007 18:15

Beitrag 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.
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag 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.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Inferi74
Mitglied
Beiträge: 93
Registriert: 22.02.2007 18:15

Beitrag 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.
Benutzeravatar
atrox
Mitglied
Beiträge: 242
Registriert: 08.08.2007 00:48
Wohnort: Ravensburg

Beitrag 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
Antworten

Zurück zu „Coding & Technik“