bmg4ever Geschrieben 16. August 2005 Teilen 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 16. August 2005 Teilen 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; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bmg4ever Geschrieben 16. August 2005 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.