php任何读取外键数据,php – Mysql – 如何获取同一个表的两个外键列的数据

我的数据库中有两个表

>表:具有列的用户:id,用户名,电子邮件等

>表:users_messages包含列:id,to,from,messages,sent_time

来往的列是来自users表的密钥用户.问题是我需要:

“从用户名和消息中选择所有用户”.

例如,如果表格行如下所示:

From, To, Message

11, 14, Hi, How are you

14, 11, Hello,

如果11是约翰,14是标记,那么我需要输出如下:

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

标签:php,sql,mysql

来源: https://codeday.me/bug/20190725/1531545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值