我的数据库中有两个表
>表:具有列的用户:id,用户名,电子邮件等
>表:users_messages包含列:id,to,from,messages,sent_time
来往的列是来自users表的密钥用户.问题是我需要:
“从用户名和消息中选择所有用户”.
例如,如果表格行如下所示:
From, To, Message
11, 14, Hi, How are you
14, 11, Hello,
From, To, Message
john, mark, Hi, How are you
mark, john, Hello,
使用我的查询,我只能从列或列获取用户名,但不能同时获取两者的用户名.如何执行向我和两个用户名提供的查询?
以下查询给出了空结果:
SELECT u.username, m.message, m.from, m.to
FROM `users_messages` m, `users` u
where
m.from = u.id and m.to = u.id
LIMIT 0 , 30
我尝试过其他查询,但无法获得所需的输出.我是否还需要自助加入消息表?
解决方法:
SELECT u1.username AS "sender", u2.username AS "recipient", m.message, m.from, m.to
FROM `users_messages` m
LEFT JOIN `users` u1 ON (u1.id = m.from)
LEFT JOIN `users` u2 ON (u2.id = m.to)
WHERE m.from = XX OR m.to = XX