gpt4 book ai didi

php - Mysql - 如何获取同一个表的两个外键列的数据

转载 作者:可可西里 更新时间:2023-11-01 07:49:43 27 4
gpt4 key购买 nike

我的数据库中有两个表

  1. 表:users 列:idusernameemail

  2. 表:users_messages 列:idtofrommessages , 发送时间

tofromusers 表中的 users 键。问题是我需要:
“从用户名和消息中选择所有用户”。

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

From, To,   Message
11, 14, Hi, How are you
14, 11, Hello,

如果 11 是 john,14 是 mark,那么我需要这样的输出:

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 - Mysql - 如何获取同一个表的两个外键列的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21795567/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com