gpt4 book ai didi

mysql - 如何在 MySQL 中加入第一个有序匹配?

转载 作者:行者123 更新时间:2023-11-29 05:56:15 25 4
gpt4 key购买 nike

我有 2 个这样的表

Cities:
id__| country__
--------------
_1__| 1000
_2__| 1001
_3__| 1002

Translates:
id__ | city_id | name | __lang__ | _order_
-------------------------------------------------------
1____| 1 | Dnipro | en | 2
2____| 1 | Dnipropetrovsk | en | 1
3____| 1 | Ekaterinoslav | en | 3

如何只加入按城市id排序的翻译的第一个city_id?

我想要下一个结果:

id__| country__ | city_id  |      name       | __lang__ | _order_
1 | 1000 | 1 | Dnipropetrovsk | en | 1

我正在尝试这样的代码

SELECT * FROM `cities` 
INNER JOIN `translates` ON `cities`.`id` = `translates`.`city_id`
ORDER BY `order`
GROUP BY `city_id`

但是 GROUP BY 忽略了 ORDER BY 并总是在同一行中保留了 ORDER BY 和没有 ORDER BY

最佳答案

有很多方法可以做到这一点,但这里有一种方法!

选择
城市。*,
翻译。*

城市
内部联接
翻译

translates.city_id = cities.id
内部联接
(
选择
城市编号,
MIN(order) 作为订单

翻译
通过...分组
城市编号
) relevant_translates

relevant_translates.city_id = translates.city_id

relevant_translates.order = 翻译.order
;

relevant_translates 子查询获取 translates 表中每个 city_id 值的最小订单值。然后通过使用 translates 进行内部连接,您只保留具有最小订单值的 translates 值。祝你好运!

关于mysql - 如何在 MySQL 中加入第一个有序匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49119554/

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