我有兩個表,「消息」和「喜歡」在「測試」數據庫。 「喜歡」表只包含兩個外鍵,一個指向第三個表的「用戶名」和一個將其鏈接到「消息」的「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.任何人都可以指向正確的方向嗎?