【问题标题】:SELECT and COUNT from relative table从相对表中选择和计数
【发布时间】:2014-07-18 12:18:50
【问题描述】:

我有两个表格、论坛和主题。每个主题都属于一个论坛,由 forum_id 指定。对于每个论坛,我想在同一查询中返回所属主题计数。

SELECT  (
SELECT *
FROM  forums
) AS forums,
(
SELECT COUNT(*)
FROM  topics t
WHERE t.forum_id=forums.id
) AS topic_count

如何传递第一次选择的 ID 并在第二次进行比较?

【问题讨论】:

  • 如果您愿意,请考虑遵循这个简单的两步操作: 1. 如果您还没有这样做,请提供适当的 DDL(和/或 sqlfiddle),以便我们可以更轻松复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。
  • 这不能回答你的问题(因此只是一个评论),但从数据库设计来看,表名的标准是单一的。 forums 将是 forumtopics 将是 topic,用户表将是 user。我知道我们通常无法控制命名,但如果这是一个新数据库,这只是一个建议。另外,我认为 Gordon 的回答是正确的,尽管它可能有一两个小的语法错误(我没有尝试运行它)。

标签: mysql


【解决方案1】:

这是你想要的吗?

SELECT f.*, COUNT(*)
FROM forums f
     topics t
     on t.forum_id = forums.id
GROUP BY f.id;

【讨论】:

    【解决方案2】:
    Select *, (Select Count(*) From topics t2 
        Where t2.forum_id=t1.Forums_id) As [Topic Count] 
        From forums t1
        Order By t1.forums_id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多