Самое любимое фото - PullRequest
       4

Самое любимое фото

0 голосов
/ 08 ноября 2018

Я пытаюсь найти наиболее понравившуюся фотографию в моей БД. Есть фото, лайки, таблицы пользователей. Я попытался найти наиболее понравившуюся фотографию и пользователя, который разместил изображение только с пользователями и пользователями и получил ошибку.

SELECT 
    users.username,
    photo_id,
    COUNT(*) AS most_liked
FROM
    likes
    INNER JOIN users ON users.id=likes.user_id
GROUP BY
    photo_id
ORDER BY
    most_liked DESC
LIMIT
    1;

ОШИБКА 1055 (42000): Выражение №1 списка SELECT отсутствует в предложении GROUP BY и содержит неагрегированный столбец «ig_clone.users.username», который функционально не зависит от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by

Могу ли я сделать это только с 2 таблицами или я должен также использовать третью таблицу?

1 Ответ

0 голосов
/ 08 ноября 2018

Вам необходимо использовать подзапрос, чтобы найти наиболее понравившиеся фотографии (используя только таблицу likes) отдельно от фактической информации о фотографии (из таблицы photos), которая затем присоединяется к users. Я предполагаю, что ваша таблица photos имеет столбец user_id.

SELECT
    users.username,
    photos.photo_id,
    photo_likes.like_count

FROM
    photos
    INNER JOIN
    (
        SELECT
            photo_id,
            COUNT(*) AS like_count
        FROM
            likes
        GROUP BY
            photo_id
    ) AS photo_likes
    INNER JOIN users ON users.id = photos.user_id

ORDER BY
    like_count DESC

LIMIT
    1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...