这个问题在这里已经有答案了:
按组选择每组中的第一行(17个答案)
两年前关门了。
我有两张table:公司和电子邮件。
我想选择每个公司的最后一封电子邮件
我试过这个:
SELECT *
FROM companies
LEFT
JOIN emails
ON companies.company_id = emails.company_id
WHERE companies.status = 'active'
GROUP
BY emails.company_id
ORDER
BY emails.date DESC;
但这不起作用,按部分排序应该以某种方式先于按部分分组,因为我想得到每个公司的最后一封电子邮件,而不是排序最终结果。
有人能帮我吗?
谢谢。
更新
最后我做了这个:
SELECT *
FROM companies
LEFT
JOIN (
SELECT company_id, date
FROM emails
ORDER
BY date DESC
) emails
ON companies.company_id = emails.company_id
WHERE companies.status = 'active'
GROUP
BY emails.company_id;
谢谢你的帮助。
1条答案
按热度按时间2exbekwf1#
如果我能正确理解你的问题,我想这样的办法可以奏效。
编辑:更新thorsten答案