我有两个疑问:
SELECT * FROM `kamcms_forum_post`
WHERE date=(SELECT max(date)
FROM `kamcms_forum_post`
WHERE `forum_topic_id` = [THERE IS PLACE FOR `forum_topic_id` from second query])
SELECT *, count(*) as posts
FROM `kamcms_forum_topic` as t
LEFT OUTER JOIN `kamcms_forum_post` as p ON t.forum_topic_id = p.forum_topic_id
GROUP BY t.forum_topic_id ORDER BY p.forum_post_id
第一个查询从主题中获取最后一个帖子,第二个查询从主题和 topic_name(来自其他表)中获取第一个帖子以及主题中所有帖子的计数。我如何加入这些查询?
输入:
kamcms_forum_topic
kamcms_forum_post
输出:
标题来自forum_topic, 第一篇帖子 user_id 和最后日期以及来自 forum_post 的 user_id。
最佳答案
第一个问题,您的第二个查询将始终返回至少 1 来计算具有左连接的主题的计数。这应该与我对您的请求的理解非常接近。
SELECT t.title, p.user_id, p2.user_id, p2.date, count(p.forum_topic_id) as posts
FROM kamcms_forum_topic as t
LEFT OUTER JOIN kamcms_forum_post as p ON t.forum_topic_id = p.forum_topic_id
LEFT OUTER JOIN kamcms_forum_post as p2 ON t.forum_topic_id = p2.forum_topic_id
WHERE p.date=((SELECT MIN(date)
FROM kamcms_forum_post sp where sp.forum_post_id = p.forum_post_id)
AND p2.date=((SELECT MAX(date)
FROM kamcms_forum_post sp where sp.forum_post_id = p2.forum_post_id)
GROUP BY t.forum_topic_id ORDER BY p.forum_post_id
关于mysql - 如何加入这些查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31367559/