MySQL Query que resume todos los valores a la vez que la selección de un valor con tablas unidas

user6631314:

Cuando ir a buscar un artículo, me gustaría obtener la suma de los gustos de otra tabla y también comprobar al mismo tiempo, si el usuario actual ha gustado el artículo.

Para obtener sólo el artículo y suma de gustos, que puedo hacer:

"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";

¿Cómo puedo obtener al mismo tiempo si el usuario actual ha gustado el artículo.

La lógica de si el usuario ha gustado el artículo sería

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

donde si el recuento de filas == 0, entonces el usuario no le ha gustado el artículo.

Sin embargo, no estoy seguro de cómo integrar eso en la primera consulta. Creo que podría implicar el uso de CASO, pero esto es por encima de mi nivel de familiaridad SQL. Gracias por cualquier sugerencia.

akina:
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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=364747&siteId=1
Recomendado
Clasificación