mysql - 如何加入这些查询?

标签 mysql

我有两个疑问:

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 http://screenshooter.net/102363018/ynselub kamcms_forum_post http://screenshooter.net/102363018/ihdjpdf

输出:

标题来自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/

相关文章:

php - codeigniter - 从具有相同列名的 2 个表中选择

当不存在重复项时,Mysql 返回 'Duplicate Entry'

mysql - 错误 1215 (HY000) : Cannot add foreign key constraint at creating a table

mysql - moodle phpmyadmin 无法登录

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - Mysql查询IN子句返回结果

python - 将用户身份验证系统添加到我的Python脚本或可执行文件中

php - 将文本列从 mysql 以 HTML 格式加载到 php

mysql - 如何使用 Sequelize 在我的时区存储正确的日期时间

mysql - 如何将临时 MySQL 表转储到文件中?