Mysql 如何获得活跃客户?SQL查询

Mysql 如何获得活跃客户?SQL查询,mysql,Mysql,我正在尝试为某人制作某种导出功能,将他的客户机导出到CSV。 这很有效,只是我没有达到预期的效果。债务人可以有多个订阅(abonnement)。如果他至少有一个订阅的结束日期是在将来,那么他就是一个活跃的客户,如果他不是一个不活跃的客户 我现在有以下疑问: SELECT debiteur.bedrijf_naam, adres.straat, adres.huisnr, adres.huisnr_toev, adres.postcode, adres.plaats FROM d

我正在尝试为某人制作某种导出功能,将他的客户机导出到CSV。 这很有效,只是我没有达到预期的效果。债务人可以有多个订阅(abonnement)。如果他至少有一个订阅的结束日期是在将来,那么他就是一个活跃的客户,如果他不是一个不活跃的客户

我现在有以下疑问:

SELECT debiteur.bedrijf_naam, adres.straat, adres.huisnr, 
        adres.huisnr_toev, adres.postcode, adres.plaats FROM debiteur 
LEFT JOIN adres ON adres.debiteur_id = debiteur.id 
LEFT JOIN abonnement ON abonnement.debiteur_id = debiteur.id
LEFT JOIN abonnement_site_rubriek ON abonnement_site_rubriek.abonnement_id = abonnement.id
WHERE adres.adres_rol = 'post' AND
      abonnement_site_rubriek.rubriek_id IN (872,899) AND 
      abonnement.datum_dienst_tot < DATE(NOW())
GROUP BY debiteur.id
选择debiteur.bedrijf_naam、adres.straat、adres.huinsr、,
地址:Huissr\u toev,地址:邮政编码,地址:debiteur提供的地址
地址debiteur\u id=debiteur.id上的左连接地址
在abonnement.debiteur\u id=debiteur.id上左连接abonnement
左连接abonnement\u site\u rubriek ON abonnement\u site\u rubriek.abonnement\u id=abonnement.id
其中adres.adres_rol=‘post’和
(872899)和
abonnement.datum_dienst_tot<日期(现在())
按借方id分组
通过此查询,如果客户过去有任何具有结束日期的订阅,即使其具有具有未来结束日期的订阅,它也将显示在非活动客户中

colum datum_dienst_tot是订阅结束日期

如何通过查看所有客户订阅,使查询仅返回非活动客户

谁能给我指出正确的方向


非常感谢

给定的查询将带来那些订阅已结束的用户,您最好检查abonnement.datum\u dienst\u tot是否大于今天,如下所示:

SELECT debiteur.bedrijf_naam, adres.straat, adres.huisnr, 
    adres.huisnr_toev, adres.postcode, adres.plaats FROM debiteur 
LEFT JOIN adres ON adres.debiteur_id = debiteur.id 
LEFT JOIN abonnement ON abonnement.debiteur_id = debiteur.id
LEFT JOIN abonnement_site_rubriek ON abonnement_site_rubriek.abonnement_id = abonnement.id
WHERE adres.adres_rol = 'post' AND
    abonnement_site_rubriek.rubriek_id IN (872,899) AND 
    abonnement.datum_dienst_tot > DATE(NOW())
GROUP BY debiteur.id

如何定义未来结束日期?您可以使用date_SUB和date_ADD将NOW()日期在时间上前后移动,因此abonnement.datum_dienst_tot>date_SUB(NOW(),INTERVAL 7 DAY)表示在过去7天内处于活动状态,因此在没有任何聚合函数的情况下,未来结束日期将比今天大,使用GROUPBY子句是不合适的,可能您正在寻找DISTINCT运算符。此外,所有外部联接当前都呈现为内部联接。这就是你想要的吗?谢谢你的回答。那是两年前的事了,但为时已晚