столбец должен появляться в предложении GROUP BY или использоваться в статистической функции в таблицах внутреннего и внешнего объединения - PullRequest
0 голосов
/ 18 марта 2020

Я получаю сообщение об ошибке: столбец "u.username" должен появиться в предложении GROUP BY или использоваться в статистической функции.

Я пытаюсь выполнить внутреннее соединение таблицы A и таблицы B и таблицы внешнего соединения C ((Внутреннее соединение B) внешнее соединение C)

Я запускаю код внизу.

SELECT u.username, u.name, m.date, m.messages, u.profile_image, m.message_id,
COUNT(case current_vote when -1 then 1 else null end) AS post_down_vote,
COUNT(case current_vote when 1 then 1 else null end) AS post_up_vote
FROM Users u 
    INNER JOIN messages m ON u.user_id=m.sender_id  
    FULL OUTER JOIN message_vote v ON m.message_id = v.message_id
    WHERE receiver_id = 18;

Буду признателен за любую помощь.

Спасибо!

1 Ответ

2 голосов
/ 18 марта 2020

Во-первых, вам не нужно full join. Во-вторых, вам просто нужно включить все неагрегированные столбцы:

SELECT u.username, u.name, m.date, m.messages, u.profile_image, m.message_id,
       SUM(case current_vote when -1 then 1 end) AS post_down_vote,
       SUM(case current_vote when 1 then 1 end) AS post_up_vote
FROM Users u INNER JOIN
     messages m
     ON u.user_id = m.sender_id LEFT JOIN
     message_vote v
     ON m.message_id = v.message_id
WHERE receiver_id = 18
GROUP BY u.username, u.name, m.date, m.messages, u.profile_image, m.message_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...