【问题标题】:Get the most frequent value in a linking table and refer back to it in a main table in MySQL获取链接表中最频繁的值,并在 MySQL 的主表中引用它
【发布时间】:2020-03-13 14:46:07
【问题描述】:

我在 Star Wars 数据库中使用了几个表以及一个连接表(这是 Uni 项目的一部分)。

我正在尝试编写一个查询,它将根据表中的字符以及通过连接表链接在一起的另一个表中的运输方式返回最常见的运输方式。

person 和 transport 表中的主键都是一个简单的“id”列,然后两个表都有一个 name 列。

已创建一个名为 person_transportation 的链接表,其中包含来自 person 和 transport 表的 id 列。

我可以运行以下查询:

SELECT transport_id 
FROM person_transport 
GROUP BY transport_id 
ORDER BY COUNT(*) 
DESC LIMIT 1

返回值 2(这是我想要的船的正确 ID)。我似乎找不到将这个查询放入另一个查询的方法,该查询将返回船名而不是 ID 号。

我在这里搜索了很多类似的问题,但它们似乎都与在单个表上运行的查询有关,而不是在链接表上。

有什么想法吗?

【问题讨论】:

标签: mysql join count


【解决方案1】:

我猜有一个 transport_table 的列,如 transport_idtransport_name
WHERE 子句中使用您的查询,如下所示:

SELECT transport_name
FROM transport_table
WHERE transport_id = (
  SELECT transport_id 
  FROM person_transport 
  GROUP BY transport_id 
  ORDER BY COUNT(*) 
  DESC LIMIT 1
)

将表名和列名更改为实际名称。

【讨论】:

  • 太棒了。那解决了它。我有类似的东西,但是我的一些上下文是错误的,并且一直失败。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2020-11-22
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
相关资源
最近更新 更多