简体   繁体   English

我的 sql 查询无法显示我想要的结果

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

I have following tables:我有以下表格:

 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

I want to send a notification:我想发送通知:

Suppose Mr. A has comitee_member.C_Month=9/9/2015 .假设A先生有comitee_member.C_Month=9/9/2015 When Mr. B submits his reference number for reference.Month=9/9/2015 , Mr. A recieves a notification that shows the sender's name (Mr. B), comitees.Name , and the reference.Month when comitee was submitted.当B先生提交他的参考号为reference.Month=9/9/2015 ,A先生临危,显示了发送者的名称(B先生),通知comitees.Name ,并且reference.Monthcomitee已提交。 This data must be stored in the Notifications table.此数据必须存储在Notifications表中。

I have this so far:到目前为止我有这个:

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) 

I guess these relationships from your sql statement:我猜这些关系来自你的 sql 语句:

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

I miss some relationships.我想念一些关系。 If this is right:如果这是正确的:

  • comitee_member.mid --> user_type.id? comitee_member.mid --> user_type.id?

you can get your results with你可以得到你的结果

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;

Optional you can add your where clause.您可以选择添加 where 子句。 Btw, I used the short form of INNER JOIN , just JOIN .顺便说一句,我使用了INNER JOIN的缩写形式,只是JOIN

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM