我在尝试进行简单查询时遇到了问题。 我的表是:带子查询的MySql查询
用户
+-------+----------+
| id | username |
+-------+----------+
消息
+-------+-------------+------------+--------+
| id | receiver_id | sender_id | text |
+-------+-------------+------------+--------+
我需要得到来自或从SEPECIFIC用户收到的所有消息(知道他的用户名)。 但我也需要获取收件人和发件人用户名。
我用
SELECT * from user U, messages M where (M.sender_id OR M.receiver_id)=(select id from user where username = 'Guy1') group by M.id
这工作,但现在我需要他们的用户名,所以我想到是这样的:
SELECT * from user U, messages M, (select username as Sender from user U1, messages M1 where M1.sender_id= U1.id)as Sub where (M.sender_id OR M.receiver_id)=(select id from user where username = 'Guy1') group by M.id
,但它不给我我需要什么,我怎么能达到什么样的我想要做什么?
在结果我需要的东西,如:
+-------+-------------------+------------------+
| text | receiver_Username | sender_Username |
+-------+-------------------+------------------+
选择用户名,receiver_id,SENDER_ID,从用户文本左连接信息on user.id = messages.receiver_id – morissette 2014-10-27 19:24:22
select user,receiver_id,sender_id,来自用户的文本左加入user.id = messages.sender_id上的消息 – morissette 2014-10-27 19:24:47
也许我没有很好地表达,我需要获取sender_id的用户名和receiver_id的用户名和文本。但只有用户=用户1 您发布的所有这些查询不会这样做 – 2014-10-27 20:02:40