【问题标题】:SQL query for two column value print from another table从另一个表打印两列值的 SQL 查询
【发布时间】:2015-04-04 18:12:53
【问题描述】:

提前感谢,我知道我的问题肯定会在接下来的几分钟内解决。

我有两个表,一个用于 user 数据,另一个用于 request 表。 request 表包含一个用户向另一个用户发出的所有请求的记录。这些用户详细信息由表一用户携带。

现在需要从 request 表中检索数据,其名称为发送请求的用户名和接收请求的用户名,而不是 request_by IDrequest_to id

大家都知道,我是 MySQL 的初学者,所以不要介意我的查询如下。

select r.*
     , u.user_name as request_by
     , u.user_name as request_to
from req_value r 
left join user u on r.req_to = u.user_id
                 or r.req_by = u.user_id

【问题讨论】:

  • 您需要加入user两次:一次获取请求者,第二次获取被请求者。
  • 你需要加入用户表两次。内连接也很可能更合适
  • 请给我语法

标签: mysql sql join inner-join


【解决方案1】:

您需要 2 个 INNER JOINs 和 user 表来为 2 个不同的列获取 namereq_toreq_by

select r.*
     , u1.user_name as request_by
     , u2.user_name as request_to
from req_value r  
join user u1 on r.req_by = u1.user_id
join user u2 on r.req_to = u2.user_id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2020-04-03
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多