bmg4ever Geschrieben 16. August 2005 Geschrieben 16. August 2005 Also ich hab hier grad ein Brett vorm Kopf... Mal zur Situation in der Datenbank (ist eine MediaWiki DB) Es gibt eine Tabelle "cur" Diese enthält alle Artikel, Kategorien usw. Die entscheidenden Felder sind: cur_id, cur_title und cur_namespace Dann gibt es noch die Tabelle "categorylinks" Diese enthält die Informationen welcher Artikel oder Kategorie auf welche Kategorie verlinkt Die entscheidenden Felder sind: cl_from, cl_to und cl_sortkey Ich suche nun alle Zeilen, die cur_namespace=14 haben und in der categorylinks-tabelle bei "cl_to" auftauchen, also "cl_to=cur_title" soweit ja nicht schwer. aber jetzt muss ich prüfen, ob der artikel mit der id cl_from den namespace 0 hat also cur_namespace=0 Und dann will ich danach(!), also wenn die zeilen der zweiten bedingung raussind, auch noch eine Limitierung mit Offset-Wert machen. Kann man das alles in eine SQL packen, oder muss ich dann das zweite mal gesondert prüfen und die Limitierung im Quellcode selber realisieren?
Monty82 Geschrieben 16. August 2005 Geschrieben 16. August 2005 Wenn ich's richtig verstanden habe, dann ungetestet: SELECT c1.* FROM categorylinks AS cat LEFT JOIN cur AS c1 ON c1.cur_title=cat.cl_to LEFT JOIN cur AS c2 ON c2.cur_title=cat.cl_from WHERE c1.cur_id IS NOT NULL AND c1.namespace='14' AND c2.cur_id IS NOT NULL AND c2.namespace='0' LIMIT 10 oder SELECT c1.* FROM cur AS c1, cur AS c2, categorylinks AS cat WHERE c1.cur_namespace='14' AND cat.cl_to=c1.cur_title AND c2.cur_title=cat.cl_from AND c2.cur_namespace='0' LIMIT 10;
bmg4ever Geschrieben 16. August 2005 Autor Geschrieben 16. August 2005 ahh danke für die mühe ein denkanstoß hätte aber auch gereicht einfach die gleiche tabelle mit zwei aliasen einbinden, gut zu wissen, dass das geht
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden