SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.05.2020 20:12:31

Армен
Участник
Зарегистрирован: 30.05.2020
Сообщений: 2

Вывести определенное количество повторяющихся строк.

Всем привет! Попытаюсь изъясниться коротко)
Недавно начал изучать SQL (MySQL ).
Есть импровизировання БД сайта фильмов. Есть таблицы фильмов, комментов к этим фильмам, обзорами и тд. Задача состоит в том, чтобы вывести 5 самих просматриваемых фильмов со всеми своими комментариями. Т.е. строк должно быть выведено больше 5-и, в зависимости от кол-ва комментариев. Следующим запросом:

SELECT movies.id, movies.views, movies.movie_name, comments.comment FROM movies
INNER JOIN comments ON movies.id = comments.movies_id
ORDER BY movies.views DESC;

получаю все фильмы (их 8) но как получить именно 5-и фильмов не могу надумать. Подскажите плиз)


Прикрепленные файлы:
Attachment Icon Screenshot_20200530_210100.png, Размер: 154,119 байт, Скачано: 7

Неактивен

 

#2 30.05.2020 21:34:30

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5699

Re: Вывести определенное количество повторяющихся строк.

select ... from (select ... from movies ORDER BY movies.views DESC limit 5) as t INNER JOIN comments ON t.id = comments.movies_id;

Неактивен

 

#3 30.05.2020 21:51:38

Армен
Участник
Зарегистрирован: 30.05.2020
Сообщений: 2

Re: Вывести определенное количество повторяющихся строк.

Спасибо большое, отлично работает! Но есть ли ещё  способ отличный от этого? Возможно покажется странным, но очень надо)

Неактивен

 

#4 30.05.2020 22:45:26

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2295

Re: Вывести определенное количество повторяющихся строк.

Ну можно еще inner join заменить на подзапрос. Но поясните - зачем Вам способ, отличный от этого - если этот работает?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson