php - SQL查询以查找欠债三个月或更长时间的用户

标签 php mysql sql

我有一个小应用程序 (PHP/MySQL) 来管理公寓。有一个 condos 表、apartments 表、一个 owners 表和一个 account 表。

account 表中,我有字段 month_paidyear_paid(以及其他)。

每次有人支付月费时,表格都会更新月数和年数。

下面是一些示例表结构:

condos 表:

+----+------------+---------+
| id | condo_name | address |
+----+------------+---------+

公寓表:

+----+----------------+----------+
| id | apartment_name | condo_id |
+----+----------------+----------+

owners 表:

+----+--------------+------------+
| id | apartment_id | owner_name |
+----+--------------+------------+

account 表:

+----+----------+----------+------------+-----------+
| id | owner_id | condo_id | month_paid | year_paid |
+----+----------+----------+------------+-----------+

所以,如果我在帐户表中有这样的记录,则表示该所有者在 2012 年 8 月付款:

+----+----------+----------+------------+-----------+
| id | owner_id | condo_id | month_paid | year_paid |
+----+----------+----------+------------+-----------+
|  1 |        1 |        1 |          8 |      2012 |
+----+----------+----------+------------+-----------+

我想知道的是如何进行 SQL 查询(使用 PHP)以获取欠债三个月或以上的所有者,或者换句话说,最近三个月未支付费用的所有者或更多。

如果可能,数据应按公寓分组,如下所示:

CONDO XPTO:
Owner 1: 3 months debt
Onwer 2: 5 months debt

CONDO BETA
Owner 1: 4 months debt
Onwer 2: 6 months debt

谢谢

最佳答案

您需要编写如下查询:

SELECT
    *
FROM
    owners
JOIN
    account
ON
    owners.id = account.owners_id
WHERE
    CONCAT( account.year_paid , '-' , account.month_paid , '-01') <= DATE_ADD( NOW(), INTERVAL -3 MONTH );

遗憾的是,根据您提供的信息,我只能提供这些信息。如果你能展示更详细的表结构,我可以帮助你更多。

关于php - SQL查询以查找欠债三个月或更长时间的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14053719/

相关文章:

php - 在 DQL 中加入

php - Pdo 执行没有返回结果

mysql - MySQL 中的generate_series

php - 将行迁移到新表,然后删除它们

php - 你如何处理 jQuery 中的后退按钮?

mysql - 在同一个表中选择多个条件

php - mysql group_concat 到 ZF 中的 JSON - 结果重复转义反斜杠

mysql - 将 SQL VIEW 与 WHERE 子句一起使用(错误)

php - 更新查询返回1,但无法在php中使用MSSQL更新数据库

php - 在 PHP/MySQL 中手动增加计数器的最佳方法是什么?