我们有 2 个表正在处理,一个包含人员列表,另一个包含人员执行的操作列表。我们正在尝试将人员表与操作表连接起来,并在不重复人员的情况下带回最后 5 个操作(按人员)。
查询如下所示:
SELECT a.name,a.name_id,b.action_row_id,b_action_name_id,b.action_text
FROM people_table as a
LEFT JOIN action_table as b
ON a.name_id = b.action_name_id
GROUP by a.name_id
ORDER by b.action_row_id DESC LIMIT 0,5
在这种情况下,name_id
在 table1 中是唯一的,但 action_name_id
在 table2 中重复。此外,action_row_id
是操作表的索引行号。由于它是一个增量行,如果按降序排列,它也代表最近的活动。
假设对于 name_id = 1
,我们在 action 表中有 10 行,所有行都带有 action_name_id = 1
,但 action_row_id
的范围从 25 到 34。
我们希望查询带回与 action_row_id 34
连接的人 1....但我们不一定会得到那个结果,通常会返回 action_row_id = 25
。
基本上,我们希望将 table1 中的唯一 ID 与 table2 中的匹配 ID 连接起来,但提取索引 ID 最高的那个。
希望这很清楚,并提前致谢(一如既往)