Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Как продолжить выборку?

Здравствуйте, подскажите пожалуйста, мне нужно выбрать новости тех пользователей у которых кол-во комментариев > 1 В итоге даны у меня 3 таблицы: comments, news, users

Структура таблицы users:
-id
-login
-data
Структура таблицы news:
-id
-user_id
-title
-text
Структура таблицы comments:
-id
-user_id
-news_id
-text

И к примеру вот таблица comments заполнена так:
5deffdb18df49716268031.png
Делаю такой вот запрос:
SELECT comments.user_id
FROM comments
GROUP BY comments.user_id
HAVING COUNT(comments.user_id) > 1

Получаю результат:
5deffe097cb86238176679.png

Всё как бы верно, запрос возвращает id тех пользователей которые оставили больше одного комментария, но по заданию мне нужно ещё вывести их новости, и подскажите пожалуйста как можно ещё найти новости этих пользователей ? Я так понимаю что мне нужно копать в сторону join и подзапросов ?

Заранее благодарю за ответ.
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
WStanley
@WStanley
Back-end Developer
Трям!
Джойны не так страшны как кажутся, тут главное практика.
SELECT
    USERS.LOGIN
,   NEWS.TITLE
,   NEWS.TEXT
FROM
    USERS
LEFT OUTER JOIN
    COMMENTS
ON
    USERS.ID    =   COMMENTS.USER_ID
RIGHT OUTER JOIN
    NEWS
ON
    USERS.ID    =   NEWS.USER_ID
GROUP BY
    NEWS.TITLE
,   NEWS.TEXT
,   USERS.LOGIN
HAVING
    (COUNT(COMMENTS.ID) >   1)

p.s. Чтобы научиться писать запросы надо писать запросы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы