Я играл с LEFT JOINs, и мне интересно, можно ли получить SUM всех рейтингов до сих пор от всех пользователей в следующем запросе. Ниже приведена информация о том, был ли зарегистрированный пользователь зарегистрирован или нет, но я хочу показать общие оценки и от других пользователей.SUM() на всех строках LEFT JOIN?
$query = mysql_query("
SELECT com.comment, com.comment_id, r.rate_up, r.rate_down
FROM comments com
LEFT JOIN ratings r
ON com.comment_id = r.comment_id
AND r.user_id = '" . $user_id_var . "'
WHERE page_id = '" . $category_id_var. "'");
Я пробовал следующее, но по какой-то причине я получил только один комментарий/строку.
$query = mysql_query("
SELECT com.comment, com.comment_id,
r.rate_up, r.rate_down
SUM(r.rate_up) AS total_up_ratings,
SUM(r.rate_down) AS total_down_ratings,
FROM comments com
LEFT JOIN ratings r
ON com.comment_id = r.comment_id
AND r.user_id = '" . $user_id_var . "'
WHERE page_id = '" . $category_id_var. "'");
Любая помощь оценена. Нужен ли мне другой вид JOIN?
Это, кажется, ближе всего. Функции, которые мне нужны, должны отображаться, если текущий пользователь оценил комментарий и общий рейтинг вверх и вниз всех, кто когда-либо оценивал этот комментарий. Вставка или удаление «where user_id =». $ User_id_var. «Кажется, получается тот или другой ... но не оба. – john
проверить отредактированные запросы: я добавил 'group by comment_id, user_id', поэтому в подзапросе у вас есть оценки комментариев для каждого пользователя, которые оценивают этот комментарий. Целый запрос должен дать вам все комментарии и информацию, чтобы пользователи, оценившие эти комментарии. Затем вы можете искать в строках результата для текущего пользователя, чтобы узнать, оценил ли он конкретный комментарий. –
По-прежнему не повезло. Разве запрос не нуждался бы в идентификаторе пользователя там? – john