当前位置: 首页 > 面试题库 >

从多对多表中检索分组

佴英奕
2023-03-14
问题内容

这很难解释,但我会尽力而为。

我有2个具有多对多关系的桌子;有一个定义关系的链接表。这些表分别命名为Question,QuestionTopic和Topic。主题具有字段TopicID和TopicName.Question具有字段QuestionID和QuestionText。

我想检索主题列表以及属于该主题的问题数量。但是,可以将主题归为一组,并且应该知道该组合所独有的问题数。举个例子:

主题| 数数

主题1,主题2 | 10

主题1 | 3

主题2 | 2个

上面的内容暗示主题1和主题10有3个独特的问题,主题分别为主题1和主题2。剩下的2个问题都有topic2。我正在使用MySQL和PHP。谢谢。


问题答案:

使用的“作弊”解决方案GROUP_CONCAT()。这不会显示与任何主题均不相关的问题的数量:

SELECT
      TopicIds
    , COUNT(*) AS QuestionCount
FROM
      ( SELECT
              QuestionId
            , GROUP_CONCAT(TopicId ORDER BY TopicId) AS Topics
        FROM 
              QuestionTopic
        GROUP BY 
              QuestionId
      ) AS grp
GROUP BY
      Topics


 类似资料:
  • 我试图从我的链接表sfees中获取数据,它由来自学生表的学生id和来自M_费用表的MFEEID组成。我的模型是: M_fees: 现在,我如何检索特定学生的学费(类型和金额)?我在控制器中使用了以下功能: 但它似乎不起作用。 有人能帮我吗?

  • 问题内容: 我在SQS中有多个消息。即使有数十个可见代码(不在运行中),以下代码也 始终 仅返回一个。 我认为setMaxNumberOfMessages允许一次使用多个..我误解了吗? 我也尝试使用withMaxNumberOfMessages,但没有任何运气: 我怎么知道队列中有消息?大于1? 上面的代码总是在运行之前给我> 1 感谢您的输入 问题答案: AWS API参考指南:Query /

  • 问题内容: 我有一个包含 产品* 列表的表 订单 。对于与特定订单相对应的每个 产品 ,我需要存储一个 地址 列表,在该 地址 中应将单个产品(每个订单基于每个产品)发送到 * 所以我有这张表,在 订单 和 产品 上有很多很多,我需要的是将上表中的每个条目映射到 地址 列表。所以我需要像 并将上表中的条目映射到地址列表,我需要上述PK和地址ID(我的地址表的主键)上的多对多表 这里PK_Order

  • 我在从两个表中检索数据然后列出它们时遇到了一些问题。我想将用户的提要帖子和他们喜欢的活动全部列在一个列表中。 提要-用户帖子表 我想做的是:在活动墙中列出提要和类似用户的活动。 所以它应该输出如下(按时间戳desc排序): “这是用户A的帖子” 我的当前SQL: 然而,我的问题是我不知道如何链接这两个表,因为我的“feed”中的ID与“likes”中的ID不同

  • 我已经开始开发我的第一个MySQL数据库,我遇到了一个简单的问题。 我将我的电影按“多对多”关系进行分类: 我试图做的是按类型搜索我的电影表,并显示每部电影的所有类型,例如: 这是一个我用来搜索恐怖电影的查询 我遇到的问题是,这个查询在筛选之前检索所有表的全部,我收集的结果非常低效。有没有更好的方法可以在显示所有相关类型的同时按一种类型搜索?

  • 问题内容: 我在这里遇到了一个令人费解的问题,在这里我使用Backbone中的集合检索了JSON对象。这是该对象的外观: 我要处理的数据是根据特定属性(例如Venue.Name或Date属性)过滤的(它们在对象中的深度不同,对于某些其他数据,其深度可能超过两个层次) 。我在Backbone集合中有以下代码来过滤并返回一个新集合,其内容已适当过滤: 这使我可以在一个属性中指定要针对任何对象深度使用的