【问题标题】:Take different names from the same column using two different ID's from other table使用来自其他表的两个不同 ID 从同一列中获取不同的名称
【发布时间】:2020-03-16 11:25:35
【问题描述】:

我在 mySQL 数据库中有这些表:

订单

Order_ID   ID_employee   ID_Manager
-----------------------------------

123            345           678
234            678           333
146            222           679

个人信息

Person_ID      name    
----------------------

345            Mickey        
333            Mike          
222            Jack   

我想从每个表中获取 Order_ID 以及员工及其经理的姓名。 我怎样才能做到这一点?我尝试使用 INNER JOIN 编写查询,但不明白如何 从两个表中获取它,我也尝试进行子查询,但没有成功。

【问题讨论】:

  • 我尝试使用 INNER JOIN 编写查询,但无法理解如何从两个表中获取它您在主表中有 2 个独立字段 - 所以您必须使用 2从表的独立副本,并从单独的表副本中获取每个单独字段的数据。
  • 怎么没有678和679的person_id,如果没有你想做什么
  • 同时指定预期结果。并向我们​​展示您当前的查询尝试。

标签: mysql sql subquery inner-join


【解决方案1】:

你必须加入orders到2份personal_info,第一份获取员工姓名,第二份获取经理姓名:

select o.order_id, p1.name employee, p2.name manager
from orders o
inner join personal_info p1 on p1.person_id = o.id_employee
inner join personal_info p2 on p2.person_id = o.id_manager

【讨论】:

  • 谢谢!它现在可以工作了,问题出在我尝试的第二个内部连接中:-)
猜你喜欢
  • 2018-03-26
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
  • 2018-12-08
  • 2017-04-07
  • 2021-06-21
相关资源
最近更新 更多