gpt4 book ai didi

mysql - 每个父级的内部连接限制

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:57 25 4
gpt4 key购买 nike

我有一个名为 weathers 的表:

+--------+-------+---------+
| id | temp | id_freg |
+--------+-------+---------+
| 337 | 12.36 | 1 |
| 3556 | 11.46 | 2 |
| 6775 | 9.30 | 3 |
| 10210 | 8.55 | 1 |
| 13429 | 9.69 | 2 |

还有一个名为 freguesias 的表(葡萄牙的小地方):

+----+-----------+
| id | name |
+----+-----------+
| 1 | Cabeção |
| 2 | Pavia |
| 3 | Brotas |
| 4 | Mora |

我在这里需要做的是进行 INNER 连接并限制每个 freguesia 的天气结果数量。 , 所以如果我想要 3 freguesias 的天气我要order desc limit 1对于每个,换句话说,你可以说这是每个 freguesias 的当前天气在where条款。

此时我的查询是:

select weathers.* 
from weathers
inner join freguesias
ON weathers.id_freg = freguesias.id
where weathers.id_freg IN (2,1)
LIMIT 1;

嗯,这行不通,因为我需要每个结果一个:id_freg = 1 , 另一个是 id_freg = 2 , 每一个都由 weathers.id DESC 订购

最佳答案

假设 weathers.id 指定了最近的值,那么您可以计算每个 freguensia 的最近值。在这种情况下,我会推荐一个相关的子查询:

select w.* 
from weathers w
where w.id_freg in (2, 1) and
w.id = (select max(w2.id)
from weathers w2
where w2.id_freg = w.id_freg
);

您需要一个关于weathers(id_freq, id) 的索引以提高性能。

关于mysql - 每个父级的内部连接限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49921277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com