Мне трудно понять, как справиться с тем, о чем я думал в SQL.У меня есть закладки и комментарии, которые пользователи опубликовали о них.Я использую одну таблицу для всех комментариев.Таким образом, между закладками и комментариями существует отношение один ко многим.
Есть еще одна таблица, выступающая в роли посредника, связывающая каждую закладку со всеми ее комментариями.
Тамдва типа комментариев.Предлагаемые названия для закладки и общие комментарии.Предлагаемые заголовки имеют как заголовок, так и описание, в то время как общие комментарии имеют только описание.Существует также система рейтинга для предлагаемых заголовков, так что домашняя страница может выбрать заголовок с самым высоким рейтингом для каждой закладки для отображения.
Итак, основные вещи, которые нужно прояснить.Есть таблица закладок с BID и URL, а также таблица комментариев с CID, заголовком, комментарием и рейтингом.BooksNComms - это связующая таблица между ними.
SELECT comments.title, comments.comment
FROM comments
INNER JOIN booksncomms ON comments.cid=booksncomms.cid
WHERE booksncomms.bid=1
AND comments.title is not null
ORDER BY comments.rating
LIMIT 0, 1;
Вышеприведенное работает для получения наилучшего заголовка и описания (комментария) для определенного BID.То, что я хочу сделать, это заставить вышеупомянутую работу, скажем, для 10 новейших закладок.
SELECT bookmarks.url, comments.title, comments.`comment`, comments.rating
FROM bookmarks
INNER JOIN booksncomms
ON bookmarks.bid=booksncomms.bid
INNER JOIN comments
ON comments.cid=booksncomms.cid
JOIN (
SELECT bookmarks.bid
FROM bookmarks
ORDER BY bookmarks.datecreated DESC
LIMIT 1
)
AS a
ON a.bid=bookmarks.bid
WHERE comments.title IS NOT NULL
ORDER BY bookmarks.url;
Выше приведены все названия для 10 новейших закладок.
Есть ли способЯ могу выбрать только заголовок с самым высоким рейтингом для каждой из 10 новейших закладок?