我有一个小应用程序 (PHP/MySQL) 来管理公寓。有一个 condos
表、apartments
表、一个 owners
表和一个 account
表。
在 account
表中,我有字段 month_paid
和 year_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/