我似乎無法弄清楚這樣做的最佳方法。邏輯:想想這個例子的Facebook。如果我對某個帖子發表評論,那麼任何關注該帖子的人都應該收到一封電子郵件,但不會是我,因爲這是我的初始評論。但是,當別人評論我關注的帖子時,我應該會收到通知。SQL Query根據特定需求生成電子郵件列表
波斯塔:我下面
PostB:我下面
波斯塔:我發佈的評論
PostB:其他人發佈的評論
我應該得到關於PostB而不是電子郵件波斯塔。
下一頁...
PostB: I posted a comment.
我不應該得到一個通知,但其他人應該。
我使用的是個性化的電子郵件調度和這裏的工作流程:
- 我設定的運行狀態。
- 我使用SQL查詢設置收件人列表。
- 我爲電子郵件創建了個性化插入(即對您關注的帖子發表了新評論)。
我有該實施例3個表:
- PostFollowers(用戶ID,電子郵件,帖子ID)
- 郵政(帖子ID,消息,Notification_Sent < - BIT)
- PostComments(CommentID,用戶ID ,評論,Notification_Sent < - BIT)
第一步:設置運行狀態
SELECT * FROM PostComments WHERE Notification_Sent = 0
如果值返回的應用程序將執行活動。
第二步:選擇收件人
SELECT
a.Email
,a.PostID
FROM PostFollowers
INNER JOIN PostComments b on a.PostID = b.PostID
WHERE b.Notification_Sent = 0
所以我上面的收件人可查詢包括誰在下面,目前有尚未發出的通知,但意見後的任何人。
什麼是調整我的查詢的最佳方式,以便收件人只是那些關注帖子的人,但任何相關評論都不是他們自己的。如果評論不是由他們自己創建的,他們應該只會收到一封電子郵件。說一段時間過去了,我已經在一篇文章上發表了10條評論。一封電子郵件應該發送給任何正在關注的其他人。然後有人過來並發表評論。我現在應該收到一封電子郵件。
我可能在想這個。也許是減去我的評論,並在WHERE子句中的計數?
謝謝你,我有點累......希望我的問題很明確。
有PostComments和用戶ID誰評論此評論之間沒有聯繫。將列UserId添加到PostComments。然後你必須添加條件加入:在a.PostID = b.PostID和a.UserId!= b.UserId – NoGotnu
這是發佈問題時我的一個疏忽。我道歉。該欄確實存在。我非常妄想發送電子郵件,因爲我害怕我會搞砸了。 – user1447679
看起來我錯過了基於你的建議的明顯 – user1447679