Sie müssten ein wenig denormalisieren und das Feld posts.created_at in die Tabelle post_tags kopieren (ich habe es post_created_at genannt, Sie können es benennen, wie Sie möchten):
CREATE TABLE `posts_tags` (
`id` int(11) NOT NULL auto_increment,
`post_id` int(11) default NULL,
`tag_id` int(11) default NULL,
`post_created_at` datetime default NULL,
`created_at` datetime default NULL,
`updated_at` datetime default NULL,
PRIMARY KEY (`id`),
KEY `index_posts_tags_on_post_id_and_tag_id` (`post_id`,`tag_id`)
) ENGINE=InnoDB;
und fügen Sie dann einen Index zu posts_tags auf
hinzu(tag_id, post_created_at)
Dadurch kann die Abfrage alle Posts für ein Tag in der richtigen Reihenfolge ohne Dateisortierung abrufen.