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

时间:2018-05-13 13:57:26

标签: php mysql sql codeigniter codeigniter-3

我在mysqli中有2个表,我想从table1中选择所有客户,其中表2中还没有付款条目或(具体日期)。

实际上我正在使用php中的客户支付系统,并希望根据截止日期生成有关未提交分期付款的客户的报告。

截止日期是每个月的10日。 我怎么能实现这个目标?

已编辑以获取更多详细信息: 1-在表1中我有客户的生物数据 2-在表2中分期付款条目

客户必须在每个月的10号之前支付分期付款。 当客户提交付款时,其条目将被插入表2中。

现在,我想在当月的第10天(或任何截止日期)之前通知客户或提交尚未提交分期付款的报告。

必须进行报告,以便恢复人员可以获取提交分期付款较晚的客户列表,或者将提醒发送给客户以便即将进行分期付款。

我的桌子是

Table 1

Table 2

2 个答案:

答案 0 :(得分:0)

听起来像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
                        )
                 );

请注意,这可能无济于事。延迟付款怎么样?这将使之前的延迟付款计为未逾期。

如果这是一个问题,我建议您提出其他问题。将示例数据和所需结果放在问题中的文本表中。清楚地解释您想要的逻辑,并且任何示例查询都是有用的。

答案 1 :(得分:0)

您正在寻找的是左连接。你可以通过做一些事情来实现这一目标。

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