簡體   English   中英

我的 sql 查詢無法顯示我想要的結果

[英]My sql query can't show my desired result

我有以下表格:

 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.Name ,並且reference.Monthcomitee已提交。 此數據必須存儲在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) 

我猜這些關系來自你的 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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