MYSQL запрос, который суммирует все значения, а также выбирает одно значение с объединенными таблицами - PullRequest
0 голосов
/ 25 марта 2020

При получении статьи я хотел бы получить сумму лайков из другой таблицы, а также проверить, понравилась ли текущему пользователю статья.

Чтобы получить только статью и сумму лайков, я могу сделать:

"SELECT a.id AS aid,a.title,a.slug,SUM(l.likes) AS likes  
FROM articles `a` 
LEFT JOIN likes `l` 
ON l.articleid = a.id 
WHERE a.id = 33";

Как я могу одновременно узнать, понравилась ли текущему пользователю статья.

logi c для того, понравилась ли пользователю статья, будет

"SELECT like FROM likes where articleid = 33 AND userid = 22"

, где, если количество строк == 0, то пользователю статья не понравилась.

Однако я не уверен, как интегрировать это в первый запрос. Я думаю, что это может включать использование CASE, но это выше моего уровня SQL знакомства. Спасибо за любые предложения.

1 Ответ

1 голос
/ 25 марта 2020
SELECT a.id AS aid,
       a.title,
       a.slug,
       SUM(l.likes) AS likes,
       SUM(l.userid = 22) AS is_liked
FROM articles `a` 
LEFT JOIN likes `l` ON l.articleid = a.id 
WHERE a.id = 33
...