php - 一个表中的最小值和最大值以及另一个表中的另一个值
问题描述
我有几张表,里面有一些数据。我的任务是找到观察到的最高和最低温度以及它们的测量位置(通过一个查询)。
我的桌子:
地点
| location_id | location_name |
| -------- | --------------|
| 1 | New York |
| 2 | Chicago |
| 3 | Los Angeles |
| 4 | San Francisco |
观察
| observation_id | ref_location |temperature|
| -------- | ------------ | ----- |
| 1 | 1 |20.0 |
| 2 | 2 |18.0 |
| 3 | 3 |3.0 |
如您所见, location_id 和 ref_location 必须相互链接
这就是我的答案应该是什么样子。
if(!empty($result))
{
echo "<table>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>
<td>".$row['location_name']."</td>
<td>".$row['temperature']."</td>
</tr>";
}
echo "</table>";
}
目前我的查询如下所示:
SELECT MIN(observation.temperature) AS temperature,
MAX(observation.temperature) AS temperature,
location_name AS location_name
FROM observation
INNER JOIN location ON observation.ref_location=location.location_id;
解决方案
一种方法是获取温度最大值和最小值 id 并在 where 条件下使用它尝试:
SELECT location_name,temperature
FROM observation o
INNER JOIN location l ON o.ref_location=l.location_id
WHERE temperature IN (
SELECT MIN(temperature) from observation
union
SELECT MAX(temperature) from observation
) ;
推荐阅读
- excel - 将我的 Access 表导出到 Excel,但将列中的不同值拆分到不同的工作表中
- sql - 连接表,选择所有但重命名几个 SQL BQ
- laravel - 处理会话过期,Laravel 与 Vue 和 Axios
- javascript - 数据被过滤chartJs时如何保持圆角?
- android - 是否有可能将 try catch 函数作为中缀函数?
- apache-spark - 问:数据集
平面图到空数据集 Spark Java
- list - Flutter:方法在列表中创建问题的地方
- html - 如何使用 xslt 缩进列表的 html 列表?
- ruby - 这段代码中的“sum = map[s[0]]”是什么意思?
- powerbi - 403 Forbidden,当我尝试调用 PowerBI API 推送数据集或获取所有工作区时