MySQL-加入1中的组,记录一列的最小值和另一列的最大值
我有一张会员表(会员id、姓名等)和一张会员表(id、会员id、会员开始日期、会员到期日期),关系为一对多,因为每年每个会员都有一个新的会员条目 当我这样做时:MySQL-加入1中的组,记录一列的最小值和另一列的最大值,mysql,sql,join,inner-join,Mysql,Sql,Join,Inner Join,我有一张会员表(会员id、姓名等)和一张会员表(id、会员id、会员开始日期、会员到期日期),关系为一对多,因为每年每个会员都有一个新的会员条目 当我这样做时: SELECT * FROM members INNER JOIN membership ON members.member_id = membership.member_id 我为每个成员获取多个记录。如何将每个成员的记录分组为一个记录,其中包含成员资格开始日期的最小值和成员资格到期日期的最大值? 谢谢。您可以从成员的派生表中进行聚合
SELECT * FROM members
INNER JOIN membership ON members.member_id = membership.member_id
我为每个成员获取多个记录。如何将每个成员的记录分组为一个记录,其中包含成员资格开始日期的最小值和成员资格到期日期的最大值?
谢谢。您可以从
成员的派生表中进行聚合。例如:
SELECT m.*, ms.start_date, ms.exp_date
FROM members m
JOIN (SELECT member_id, MIN(start_date) AS start_date, MAX(exp_date) AS exp_date
FROM membership
GROUP BY member_id) ms ON ms.member_id = m.member_id
我将使用聚合:
SELECT m.*, min(ms.start_date), max(ms.expiration_date)
FROM members m
membership ms
ON m.member_id = ms.member_id
GROUP BY m.member_id;
您的代码中有一些错误没有ms joinmissing@Lorecn1 . . . 什么错误?除了“开始日期”上的一个输入错误外,它看起来是正确的。@Lorecn1别担心,我很高兴能帮上忙。