![](/img/trans.png)
[英]How do i build a mysql stored procedure to join one out of two tables based on different conditions
[英]How do I do a MySQL JOIN on conditions based on mathematical operations across two tables?
我正在嘗試構建的 CRM 應用程序中有兩個表。
“聯系人”表:
ID | 姓名 | 聯系頻率(天) |
---|---|---|
1 | 約翰 | 7 |
2 | 皮特 | 30 |
“事件”表:
ID | Contacts_id | 描述 | Unix_Timestamp |
---|---|---|---|
1 | 1 | 給約翰發了一個 email | 1609667504 |
2 | 1 | 給約翰打了電話 | 1609645455 |
1 | 2 | 給皮特發了一封信 | 1609666755 |
“ContactFrequency”是我應該多久打電話給那個客戶保持聯系。 事件中的每個條目都是帶有 UNIX 時間戳的呼叫日志。 我想生成一個客戶列表,這些客戶需要在接下來的 X 天內被調用(或者他們的下一個聯系人已經過去並且已經過期),例如以下(在我的示例中時間戳是完全任意的):
客戶 | 下一個聯系人到期(時間戳)(按此列排序) |
---|---|
皮特 | 1609645352 |
約翰 | 1609634342 |
我將如何使用查詢來做到這一點? 我無法繞過它。
正式地:
SELECT Contacts.Name Client,
COALESCE(FROM_UNIXTIME(MAX(Events.Unix_Timestamp)) + INTERVAL Contacts.ContactFrequency DAY, CURRENT_TIMESTAMP) NextContactDueOn
FROM Contacts
LEFT JOIN Events ON Contacts.id = Events.Contacts_id
GROUP BY Client
ORDER BY NextContactDueOn DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.