我有两个表,“消息”和“喜欢”在“测试”数据库。 “喜欢”表只包含两个外键,一个指向第三个表的“用户名”和一个将其链接到“消息”的“message_id”。SQL查询问题
我想查找所有具有network_id属性的特定值的消息,并且还返回这些消息中有多少个“喜欢”消息。我试图做下面的查询:
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”。如果消息没有“喜欢”,消息行仍应返回,但numLikes的值为0.任何人都可以指向正确的方向吗?