2015-09-13 49 views
-1

我有如下表:我的SQL查詢不能顯示我需要的結果

comitees: Id, Name 

comitee_member: Id, Cid, Mid, C_Month 

Reference: Id, Mid, Cid, Month, Ref_Number 

user_type: Id, User_Name, Ref_Number 

notifications: Id, Sender_Name, Reciever_Name, Month 

我想發出一個通知:

假設A先生comitee_member.C_Month=9/9/2015。當B先生提交reference.Month=9/9/2015的參考號碼時,A先生收到一個通知,顯示發件人的姓名(B先生),comitees.Namereference.Month,當提交comitee時。該數據必須存儲在Notifications表中。

我有這個至今:

Select us.Id, 
     c.Name, 
     cm.C_Month, 
     u.User_Name AS Receiver, 
     us.User_Name AS Sender 
FROM user_type u, 
     user_type us 
INNER JOIN reference r ON us.Id = r.Mid 
INNER JOIN comitee_member cm ON r.Month = cm.C_Month 
INNER JOIN comitees c ON c.Id = r.Cid 
WHERE us.Id = 3 (suppose) 
+0

向我們展示您的代碼不起作用 –

+0

向我們展示一些示例數據。 – DarkKnight

+0

上述querry dosent顯示正確的結果 我想在數據的基礎上顯示此 SENDER_NAME:Reciever_Name:Comitee.Name:C_Month B先生A先生abc2015 2015年9月9日 –

回答

0

我想從您的SQL語句這些關係:

  • Reference.mid - > USER_TYPE(ID)
  • Reference.cid - > comitees(id)
  • Reference.month - > comitee_member(C_month)

我想念一些關係。 如果這是正確的:

  • comitee_member.mid - > user_type.id?

你可以用

Select uSender.Id, 
    c.Name, 
    cm.C_Month, 
    uReceiver.User_Name AS Receiver, 
    uSender.User_Name AS Sender 
FROM user_type uSender 
JOIN reference r ON uSender.Id = r.Mid 
JOIN comitees c ON c.Id = r.Cid 
JOIN comitee_member cm ON r.Month = cm.C_Month 
JOIN user_type uReceiver ON uReceiver.Id = cm.Mid; 

可選給你結果你可以添加你的where子句。 順便說一句,我用了INNER JOIN的簡寫形式,只是JOIN