Mysql SQL查询问题

Mysql SQL查询问题,mysql,join,Mysql,Join,我在“测试”数据库中有两个表,“Messages”和“Likes”。“Likes”表只包含两个外键,一个指向第三个表的“username”和一个链接到“Messages”的“message_id” 我想找到所有对network_id属性具有特定值的消息,并返回每个消息上有多少个“like”。我尝试执行以下查询: SELECT `Messages`.`message_id` AS id, `Messages`.`latitude` AS lat, `Messages`.`longitude` AS

我在“测试”数据库中有两个表,“Messages”和“Likes”。“Likes”表只包含两个外键,一个指向第三个表的“username”和一个链接到“Messages”的“message_id”

我想找到所有对network_id属性具有特定值的消息,并返回每个消息上有多少个“like”。我尝试执行以下查询:

SELECT
`Messages`.`message_id` AS id,
`Messages`.`latitude` AS lat,
`Messages`.`longitude` AS lon,
`Messages`.`text` AS message,
`Messages`.`network_id` AS network,
`Messages`.`poster_name` AS user,
COUNT(*) AS numLikes
FROM `test`.`Messages` LEFT JOIN `test`.`Likes` on `Messages`.message_id = `Likes`.message_id
WHERE `Messages`.network_id = 2
GROUP BY
`Messages`.`message_id`,
`Messages`.`latitude`,
`Messages`.`longitude`,
`Messages`.`text`,
`Messages`.`network_id`,
`Messages`.`poster_name`
LIMIT 50;
但问题是,如果消息上没有喜欢的内容,那么该消息上的numLikes值仍然为“1”。如果消息没有“Likes”,则仍应返回消息行,但numLikes的值为0。有人能给我指出正确的方向吗?

将count()内的*替换为字段名。

将count()内的*替换为字段名。

更改

count(*) as numLikes
进入

改变

count(*) as numLikes
进入