2009-07-11 6 views
1

Eine Tabelle mit Blogposts in einer oder mehreren Kategorien. Jetzt möchte ich 10 Beiträge auswählen und die Kategorien für jeden Beitrag haben. Das bedeutet innere Verbindung jedes Posts in der Post-to-Category-Tabelle etc.Wählen Sie x Posts aus, unabhängig von der Anzahl der intern verknüpften Kategoriereihen

Problem: Limit 10 gibt nur 10 Zeilen (zB ein Beitrag mit 10 Kategorien). Ich möchte 10 verschiedene Posts mit allen Kategorien für jeden Post haben (zB wenn jeder Post 2 Kategorien hätte, sollte er 20 Zeilen zurückgeben).

Antwort

1

Sie müssen Ihre Tabellendefinitionen für Leute als große Hilfe ... aber vorausgesetzt, Sie haben eine Tabelle "Geschichte" mit einem "story_id" Feld als Primärschlüssel und eine Tabelle Kategorien mit einem Fremdschlüssel zur Geschichte id Sie dies tun könnte:

select s.*,c.* 
from story s 
left outer join categories c 
     on c.story_id=s.story_id 
where story_id in (select story_id from story order by pub_date desc limit 10) 

die subselect würde ziehen die 10 neuesten Geschichte ids dann das Hauptauswahl nicht außen kommen.

Verwandte Themen