繁体   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