gpt4 book ai didi

sql - Mysql选择分组

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

我有两个表,需要从 TABLE_ATABLE_B 中选择数据;他们有一对多的关系。

在我的 select 语句中,我经常会从 TABLE_A 获得多个唯一的结果,这很好。但我也会在 TABLE_B 中获得多个匹配项 - 我需要获取最新的匹配的 TABLE_B 记录。我有一个可用的自动递增 id 标签。

这是一个更详细的示例:

表_A

TABLE_A_id  data
-----------------------------
1 something
2 somethignelse
3 yetagainsomething

TABLE_B

TABLE_B_id  TABLE_A_id  data
------------------------------------
1 1 filler_data1
2 1 filler_data1
3 1 filler_data3
4 2 filler_data4
5 2 filler_data5
6 3 filler_data1

我需要选择数据,以便我返回的数组与包含“filler_data1”的行的搜索类似:

`TABLE_A_id` = 1, something, `TABLE_B_id` = 2, filler_data1

`TABLE_A_id` = 3, yetagainsomething, `TABLE_B_id` = 6, filler_data1

因此,在上述情况下,我获得了最新的 TABLE_B 数据,即 TABLE_B_id = 2 并与“filler_data1”的搜索相匹配。

最佳答案

这是“每组查询中最大的 N 个”问题,每周都会在 StackOverflow 上出现多次。

SELECT A.*, B1.*
FROM TABLE_A A
JOIN TABLE_B B1 ON (A.A_ID = B1.A_ID)
LEFT OUTER JOIN TABLE_B B2 ON (A.A_ID = B2.A_ID AND B1.B_ID < B2.B_ID)
WHERE B2.B_ID IS NULL;

关于sql - Mysql选择分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1430232/

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