簡體   English   中英

如何在基於跨兩個表的數學運算的條件下執行 MySQL JOIN?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM