gpt4 book ai didi

mysql - 连接两个表以获得自定义结果

转载 作者:行者123 更新时间:2023-11-29 22:35:01 26 4
gpt4 key购买 nike

我有两个数据库表:用户和成员资格

用户结构ID、用户名、地址

成员(member)结构Id、开始日期、结束日期、用户 ID

现在我想获取还没有成员(member)资格的用户名以及成员(member)资格过期的用户

  • 注意:它们之间的关系是一个(用户)到多个(成员(member))

我尝试使用此查询连接两个表

select users.*, memberships.*, users.id as member_id 
from users
left outer join memberships
on memberships.user_id = users.id
where memberships.user_id is null
or (memberships.end_date - curdate()) < 0

但是我失败了

请帮忙:)

最佳答案

如果我理解正确的话,您希望所有当前没有活跃成员(member)资格的用户:

select u.*
from users u
where not exists (select 1
from memberships m
where m.user_id = u.id and
current_date between m.start_date and m.end_date
);

您还可以将其表达为左连接:

select u.*
from users u left outer join
memberships m
on m.user_id = m.id and
current_date between m.start_date and m.end_date
where m.user_id is null;

这里的关键思想是将日期比较放在 on 子句中。

关于mysql - 连接两个表以获得自定义结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29578262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com