gpt4 book ai didi

mysql - 选择不包含其他表中特定数据的数据

转载 作者:行者123 更新时间:2023-11-29 20:54:52 24 4
gpt4 key购买 nike

我有两个表:

+-------------------------+
| Domain |
+-------------------------+
| DomainID int |
| RegistryDate date |
+-------------------------+

还有

+-------------------------+
| Annuity |
+-------------------------+
| AnnuityID int |
| DomainID int |
| Year smallint |
+-------------------------+

在每个表中,我都有以下注册表项:

Domain:
1 | mysite.com | 2014-02-10 |
2 | myecommerce.com | 2013-08-15 |

Annuity:
1 | 1 | 2014
2 | 1 | 2015
3 | 2 | 2013
4 | 2 | 2014
5 | 2 | 2015

我需要过滤今年(2016 年)未支付年费且已过期的域名。

示例:如果我今天(2016 年 6 月 9 日)运行查询,我的查询结果应该过滤 mysite.com 域,但不应该过滤 myecommerce.com 域名,因为 mysite.com 已于 2 月 10 日到期,且 2016 年年费未支付,而 myecommerce.com 将于 8 月 15 日到期。

我正在使用 MySQL。如何编写 SQL 查询?

谢谢!

最佳答案

为此,您需要使用左外连接

SELECT d.id
FROM Domain d
LEFT OUTER JOIN Annuity a ON (d.id = a.DomainID AND a.Year = 2016)
WHERE a.id IS NULL
AND (MONTH(d.RegistryDate), DAY(d.RegistryDate)) < (MONTH(NOW()), DAY(NOW());

关于mysql - 选择不包含其他表中特定数据的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37716115/

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