【发布时间】:2020-07-29 19:05:08
【问题描述】:
用户可以在订阅表中拥有多条记录。
我想要做的是返回他们的名字、姓氏、电子邮件、开始日期(他们的第一次订阅,从订阅顺序中选择 start_date 按 start_date asc 限制 1,但我需要该特定用户)
// users
id
first_name
last_name
email
// subscriptions
id
email
start_date (TIMESTAMP)
end_date (TIMESTAMP)
status
我认为这会起作用,但它似乎没有:
select
distinct(users.email), status, first_name, last_name,
(select start_date from subscriptions where subscriptions.email = users.email order by start_date asc limit 1) as start_date
from
subscriptions sub
join
users u on sub.email = u.email
order by
sub.end_date desc
这会为每个人返回相同的 start_date,因为它可能会提取匹配的第一个。
SQL 修改架构:http://sqlfiddle.com/#!9/245c05/5
【问题讨论】:
-
见meta.stackoverflow.com/questions/333952/…。并注意 DISTINCT 不是函数