2017-08-02 32 views
-2

數據我有一個用戶表像這樣針對MySQL的每個月

id | username | name | join_date 
-----+-------------+--------+------------- 
1 | asdasd  | name1 | timestamp 
2 | asdas1  | name2 | timestamp 
3 | asdas2  | name3 | timestamp 
4 | asdas3  | name4 | timestamp 

每個用戶都需要支付月租。如果用戶支付或不支付需要報告。

所以我創造了另一個表添加一個月的數據(管理員每個月將手動添加)

id | month_number | year 
----+----------------+--------- 
1 | 02    | 2017 // Case Feb 2014 
3 | 03    | 2017 // Case Mar 2014 

如何將這兩個表的連接?

回答

0

最簡單的方法是將它們加入到查詢中。
造成這種情況的最簡單的方法是隻把它放在where子句中.... SELECT payment.month_number, payment.year, users.username FROM users, payment WHERE (users.id = payment.id) AND (users.username = asdasd)

0

您將需要一個表來跟蹤(是不是真正需要第二個表)的subscriptionssubscriptions可以有用戶ID爲外鍵,subscription_date和金額列,如:

id | user_id | subscription_date | amount 
----+-----------+-------------------+-------- 
1 |  2  | 2017-03-01  | 100 
1 |  1  | 2017-02-01  | 100 
+0

如何每個月都有拖欠者的名單? – ramesh

+1

使用「NOT EXISTS」?例如'SELECT u。* FROM users u WHERE NOT EXISTS(SELECT * FROM subscriptions WHERE user_id = u.id AND subscription_date ='2017-02-01');' –

0

如果可能的話,請添加列USER_ID到month_date表

,並嘗試這種

SELECT * 
    FROM users u 
    LEFT JOIN month_date m 
    ON u.id = m.user_id