SQL-запрос для объединения связанного объекта

#php #mysql #one-to-one

#php #mysql #один к одному

Вопрос:

У меня есть две таблицы в виде сообщений и комментариев. Каждая строка в таблице комментариев имеет идентификатор записи, к которой она принадлежит. Как я могу выбрать, например, наиболее прокомментированные десять сообщений?

Комментарии:

1. этот запрос очень прост. Вы что-нибудь пробовали? не просите кодировать для вас, это очень простой SQL.

Ответ №1:

Попробуйте это

 SELECT p.id, COUNT(c.id) tot
FROM posts p INNER JOIN comments c
ON p.id = c.post_id
GROUP BY p.id
ORDER BY tot DESC
LIMIT 10 
 

Комментарии:

1. @diEcho: о, моя вина… У меня был плохой день, и я этого не заметил … да, вы абсолютно правы, LIMIT идет до конца!! Большое спасибо

Ответ №2:

вы можете использовать group by для этого некоторого запроса, например

 SELECT posts, count(comment) as total 
from comments group by (post) order by total;
 

Комментарии:

1. Я думаю, что вам не хватает связи между таблицами, и вы выбираете комментарии, а не большинство сообщений с комментариями. Наконец, вы не попали в десятку лучших.