mysql自连接查询以及映射表

标签 mysql join

我有 MySql 数据库,其中有一个包含列的表:

table_1 {
  id (int),
  parameter (varchar),
  value (double)
}

现在参数可以有 2 个不同的值 - 步数和距离。

我还有一个映射表_2,它将表_1 中的步数映射到表_1 中的相应距离。

所以table_2只存储table_1的两个id,其模式是

table_2 {
  table_1_steps_id (int),
  table_1_distance_id(int)
}

在一个结果集中获取步数和相应距离的查询是什么?

最佳答案

获取步数和距离的快速方法如下:

SELECT
  ts.value as steps,
  td.value as distance
FROM
  table_2 LEFT JOIN table_1 ts
  ON table_2.table_1_steps_id = ts.id AND ts.parameter='steps'
  LEFT JOIN table_1 td
  ON table_2.table_1_distance_id = td.id AND td.parameter='distance'

关于mysql自连接查询以及映射表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025629/

相关文章:

sql - 基于多列之一进行连接

MYSQL从单独的表中选择和排序的问题

Python - MySQL 连接器语法错误

mysql - group by 和 group concat ,不使用主 pk 优化 mysql 查询

来自 JOIN 子句的 MySQL LIKE 和 GROUP_CONCAT 仅从连接表返回一行

java - 使用 IdClass 连接表

Java:如果加入线程不起作用:中断还是继续?

mysql - 需要专家帮助解决空间数据查询的微小变化

mysql - Django 容器找不到其 mysql 容器

java - 如何从 hibernate 中的日期类型列中读取空值