【发布时间】:2013-10-03 13:15:44
【问题描述】:
我有两张桌子:
- 用户表
- “体验”表包含有关当前用户上哪所学校的信息。此表可以包含多个学校(即以前的学校历史,甚至工作)
我希望获取 users 表,然后还获取当前学校(通过排序:exp_date)
查询如下所示:
SELECT
u.user_id,
u.firstname,
pn.programme_name,
e.exp_start,
en.firstname AS name
FROM
edu_users u
LEFT JOIN edu_experience e ON e.exp_user = u.user_id
LEFT JOIN edu_users en ON en.user_id = e.exp
LEFT JOIN edu_programmes pn ON pn.programme_id = e.exp_position
ORDER BY
exp_start DESC
它返回这个结果:
第一个结果(来自用户 id 1)是我需要的结果 - 不应获取以下与 user_id 1 关联的两个结果。
我如何实现我的这个目标?我曾尝试使用group by user_id,但随后数据在排序之前进行了分组,因此结果如下所示:
有什么想法吗?我已经按照这个问题的描述尝试了 min():ORDER BY date and time BEFORE GROUP BY name in mysql,但它不起作用。
【问题讨论】:
-
查看上面链接的相关问题。我想你会想使用 MAX(exp_start) 而不是 MIN。
-
谢谢 - 我已经尝试了 MAX 与 MIN 相同的结果。