Работая с Drupal 6, моя цель состоит в том, чтобы упорядочить набор многопоточных комментариев, аналогично тому, как Facebook выводит комментарии: с «якорем» или первым комментарием в каждом потоке, отсортированном по DESC, и с любым «внутренним» потоком ответов, отсортированным по ASC, так чтоСамые новые комментарии находятся внизу.
Вот SQL-запрос из comment_render с упорядочением по COMMENT_ORDER_NEWEST_FIRST:
SELECT c.cid as cid, c.pid, c.nid,
c.subject, c.comment, c.format,
c.timestamp, c.name, c.mail,
c.homepage, u.uid, u.name AS
registered_name, u.signature,
u.picture, u.data, c.thread, c.status
FROM {comments} c INNER JOIN {users} u
ON c.uid = u.uid WHERE c.nid = 141737
AND c.status = 0 ORDER BY c.thread
DESC
Возвращает все комментарии, упорядоченные самой новой веткой:
03/
03.00/
02/
02.06/
02.05/
02.04/
02.03/
02.01/
02.00/
01/
В моем случае желаемый порядок выглядит следующим образом:
03/
03.00/
02/
02.00/
02.01/
02.02/
02.03/
02.04/
02.05/
02.06/
01/
Снова просто подумайте о стене Facebook, и вы поймете идею.
Может ли кто-нибудь помочь надлежащим образом улучшить SQL-запрос?В моем случае (но, возможно, не во всех случаях) глубина резьбы принудительно ограничивается 1 через пользовательский модуль.
Еще одно замечание - в моем случае он должен работать только под MySQL.