2016-10-16 23 views
1

私は、(stakeoverflow)のfacebookのような通知システムのためのDbデザインの投稿をたくさん読んでいました。最後に2つのテーブルを作った。 通知とNotificationStatusの2つのテーブルがあります。新しい投稿ごとに通知テーブルが更新されます。 NotificationStatusテーブルは、ユーザーが読み取り/表示するか、または読み取りとしてマークすると更新されます。 NotificationStatusテーブルでは、通知を読んだり表示したりするユーザーの記録を保持しています。今私は質問をすることができません。ここで質問通知システムで問題が発生しました

Notification 
========================================================= 
(p.k)Id | User_Id | Post_Id | CreateDate | NotificationType 

NotificationStatus 
========================================================= 
Id | (f.k)Notification_Id | User_Id | IsRead (boolean) 

MYQUERYは次のとおりです。 -

SELECT Notification.Time, Notification.Post_Id, Notification.User_Id 
FROM Notification 
where Notification.User_Id in (check my freind list) and 
Notification.User_Id not in (select * from NotificationStatus) 
+2

何あなたの質問ですか? –

+0

クエリを作成できません –

+0

(クエリ)NotificationStatusテーブルの問題に直面しています。読み取り列を確認する方法 –

答えて

0

これは、あなたが記事を読んだユーザーを得ることができる方法です。

SELECT 
    n.Time, 
    n.Post_Id, 
    n.User_Id 
FROM 
    Notification n 
INNER JOIN 
    NotificationStatus s ON s.Notification_Id = n.Id 
WHERE 
    s.IsRead = 'True' 

あなたがユーザーの特定のリストにこのクエリをフィルタリングする場合は、我々はあなたがユーザーに渡している方法を知っておく必要があります...つまり、カンマは、テーブル変数をリストの区切りは、など

+0

ありがとうございました –

+0

問題はありません@UmerKhan – scsimon

関連する問題