【发布时间】:2015-03-31 21:09:46
【问题描述】:
我有 2 个表格,一个用于 users(招聘人员),另一个用于 CV
CREATE TABLE users (
id int primary,
email string,
company string
)
CREATE TABLE cv (
id int primary,
title string,
user_id int,
created_date datetime
)
用户可以发布许多简历。
所以我想要的是从 created_date 排序的每个用户中选择最后一个 CV,而不是下一个 cv 等等......
结果会是这样的:
简历列表按created_date DESC排序
- user_1 发布的最后一份简历
- user_2 发布的最后一份简历
- user_3 发布的最后一份简历
- user_发布的最后一份简历...
- ....
- user_1 发布的下一个简历
- user_2 发布的下一个简历
- user_3 发布的下一个简历
- user_发布的下一个简历...
- ....
我想要的是每个用户的一个条目(最后一个),而不是每个用户的下一个条目:
last Entry for user 1
last entry for user 2
last entry for user 3
last entry for user 4
....and so on...than
the entry before the last (because entries are ordred by date desc) for user 1
the entry before the last for user 2
the entry before the last for user 3
...and so on...
我发现这个解决方案不起作用
SELECT IF(@prev != a.`company_name`, @rownum:=1, @rownum:=@rownum+1)
as rownumber, @prev:=a.`company_name`, a.* FROM
(SELECT `cv`.`id` AS `id` , `cv`.`company_name` FROM `cv` ,
(SELECT @rownum := 0, @prev:='') sq ORDER BY `created_date` DESC) a order by rownumber
【问题讨论】:
标签: mysql