Estoy creando un chat y no quiero ningún mensaje con más de 5 informes. Los informes se almacenan en formato table reports
.
Este es mi SQL:
SELECT *,
message_id AS current_id,
(SELECT Count(report_id)
FROM reports
WHERE report_messages_fk = current_id) AS report_count
FROM messages
INNER JOIN users
ON message_user_fk = users.id
WHERE report_count < 5
ORDER BY message_date ASC
LIMIT 100
Este sql funciona sin el WHERE report_count < 5
, pero no con él.
Se agradece cualquier ayuda.
EDITAR: Reemplazando la WHERE
cláusula con yHAVING clause fixed the issue, thanks.
SELECT -- *, replace with appropriate column names
message_id AS current_id,
Count(report_id) as report_count
FROM messages
INNER JOIN users ON messages.message_user_fk = users.id
INNER JOIN reports on reports.report_messages_fk = messages.current_id
group by message_id
having Count(report_id) < 5
Su consulta ha sido modificada incluyéndola también join
en la reports
tabla. También debes incluir tu condición en la having
cláusula.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras