如何从表1中选择还没有付款条目的记录?

camsedfj  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(355)

我在mysqli中有两个表,我想从表1中选择表2中没有付款条目的所有客户,或者(特定日期)。
实际上,我正在用php开发一个客户支付系统,并希望生成一个关于那些尚未按到期日提交分期付款的客户的报告。
截止日期是每月10号。我怎样才能做到这一点?
编辑更多细节:1-在表1中我有客户的生物数据2-在表2中分期付款的条目
客户必须在每月10日前分期付款。当客户提交付款时,其条目将插入表2中。
现在,我想通知那些在本月10日(或任何到期日)之前还没有提交分期付款的客户或做一份报告。
必须做报告,以便恢复官员可以得到客户名单,延迟提交他们的分期付款或发送提醒客户即将分期付款。
我的table是

mu0hgdu0

mu0hgdu01#

听起来像 not exists . 你没有提供足够的信息,但你的想法是:

set @duedate = ?;  -- whatever your logic is for this

select t1.*
from table1 t1
where not exists (select 1
                  from table2 t2
                  where t2.id = t1.id and t2.date > @duedate
                 );

编辑:
根据你的评论,我猜你想:

select t1.*
from table1 t1
where not exists (select 1
                  from table2 t2
                  where t2.id = t1.id and
                        (day(curdate()) > 10 and
                         t.2 > curdate() + interval (10 - day(curdate)) day
                        ) or
                        (day(curdate()) > 10 and
                         t.2 > curdate() + interval (10 - day(curdate)) day - interval 1 month
                        )
                 );

请注意,这可能没有任何帮助。逾期付款怎么办?这将把以前的逾期付款视为未逾期付款。
如果这是一个问题,我建议你再问一个问题。将示例数据和所需结果放在问题的文本表中。清楚地解释您想要的逻辑,任何示例查询都是有用的。

zazmityj

zazmityj2#

你要找的叫做左连接。你可以通过做一些事情来实现这一点。

SELECT * FROM Table1 LEFT JOIN Table2 On Table1.Key=Table2.Key WHERE Table2.Key IS NULL

相关问题