MYSQL, ЗАКАЗАТЬ ПО НРАВИТСЯ - PullRequest
       12

MYSQL, ЗАКАЗАТЬ ПО НРАВИТСЯ

0 голосов
/ 20 февраля 2012

У меня есть 2 таблицы Тема и сообщения, я хотел бы искать свои сообщения и заказывать по теме с большинством совпадений.

Прямо сейчас у меня есть это:

SELECT Threads.* 
FROM Posts 
INNER JOIN Threads ON Posts.ThreadID=Threads.ThreadID 
WHERE Posts.Content LIKE '%" . $search .  "%' 
     OR Posts.User LIKE '%" . $search ."%'

1 Ответ

0 голосов
/ 20 февраля 2012

Вы можете добавить объединение, чтобы рассчитать количество сообщений в теме.Поскольку вы не выбираете какие-либо столбцы из сообщений, это единственное объединение, которое вам нужно.

select  t.* 
from    Threads t
join    (
        select  ThreadID
        ,       count(*) as PostCount
        from    Posts
        where   p.Content LIKE '%" . $search .  "%' 
                or p.User LIKE '%" . $search ."%'
        group by
                ThreadID
        ) PostCount
on      PostCount.ThreadID = t.ThreadID
order by
        PostCount.PostCount desc
...