SQL Query From Two Tables And Several Rows

China☆狼群 提交于 2019-12-24 19:14:55

问题


I have 2 tables.

The fisrt: Users

The second: Messages

My tables relationships:

My problem is: I need a query that returns me the all the Messages for reciver (the parameter) and the MessageSenderID and MessageReciverID as name, not as id.

my query:

SELECT Message.MessageID, Message.MessageSubject, Message.MessageContent,
       u1.UserFisrtName + '' + u1.UserLastName AS Sender1,
       u2.UserFisrtName + '' + u2.UserLastName AS Reciver1
FROM Users AS u1,
     Users AS u2,
     Messages
WHERE u1.UserID = Message.MessageSenderID
  AND u2.UserID = Message.UserID
  AND u2.UserID = ***userid***

The error is:

no value given for one or more required parameters.


回答1:


You should use a JOIN statement

SELECT * FROM messages
JOIN user u1 ON (u1.id = message.MessageSenderID)
JOIN user u2 ON (u2.id = message.essageReciverID)

More info on Join: http://www.mysqltutorial.org/mysql-inner-join.aspx

For the parameter problem see this question: Pass parameters to sql script

The parameter can be used as following:

WHERE u2.id = @userid



回答2:


SELECT Messages.MessageID, Messages.MessageSubject, Messages.MessageContent,
       s.UserFisrtName & ' ' & s.UserLastName AS Sender,
       r.UserFisrtName & ' ' & r.UserLastName AS Reciver
FROM (Messages
INNER JOIN Users AS s ON s.UserID = Messages.MessageSenderID)
INNER JOIN Users AS r ON r.UserID = Messages.MessageReciverID
WHERE r.UserID = **userid**;


来源:https://stackoverflow.com/questions/46462536/sql-query-from-two-tables-and-several-rows

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!