我正在尝试一次从三个表中检索数据。表格如下所示:
类别
id
category
messageid
消息
id
title
message
注释
id
messageid
message
我想要得到的是 1 条消息(因为我有一个WHERE
基于 id 的子句3
)、3 个类别(因为有 3 个类别链接到消息)和 2 条评论(因为有 2 条评论链接到消息)。
我正在尝试通过使用以下查询来检索数据:
SELECT categories.category, messages.id, messages.title, messages.message, comments.count, comments.id as commentid, comments.message as commentmessage
FROM categories
RIGHT JOIN
(SELECT id, title, message
FROM messages WHERE messaged.id = 3) messages
ON messages.id = categories.messageid
LEFT JOIN
(SELECT count(id), id, message
FROM comments
GROUP BY id, message) comments
ON messages.id = comments.messageid
ORDER BY article.id DESC
但是,当运行此查询时,我得到 6 个结果:
category id title message count commentid commentmessage
test 3 the title the message 1 6 comment 1
test 3 the title the message 1 5 comment 2
installation 3 the title the message 1 6 comment 1
installation 3 the title the message 1 5 comment 2
question 3 the title the message 1 6 comment 1
question 3 the title the message 1 5 comment 2
我期望的结果类似于:
category id title message count commentid commentmessage
test 3 the title the message 1 6 comment 1
question 3 the title the message 1 5 comment 2
installation 3 the title the message 1 null null
只有三行,我应该能够获得所有需要的数据。这甚至可能吗?我做错了吗™?