繁体   English   中英

如何访问mysql中另一个表的两个不同列对应的表的一列?

[英]How to access one column of a table corresponding to two different columns of another table in mysql?

我想仅使用一个查询从与表 B 中的 toEmployeeId 和 fromEmployeeId 关联的表 A 中获取列 EmployeeName。

这是我的桌子

Table A
|---------------------|------------------|
|    Employeeid       |  EmployeeName    |
|---------------------|------------------|
|          E1         |       ABC1       |
|---------------------|------------------|
|          E2         |       ABC2       |
|---------------------|------------------|
|          E3         |       ABC3       |
|---------------------|------------------|

Table B
|---------------------|------------------|
|    toEmployeeid     |  fromEmployeeid  |
|---------------------|------------------|
|          E1         |       E3         |
|---------------------|------------------|
|          E2         |       E1         |
|---------------------|------------------|
|          E3         |       E1         |
|---------------------|------------------|

这是我试图运行的查询,但它不起作用

select A.Employeeid, A.employeename,
      (select employeename
       from A,
            B
       where A.employeeid = B.fromemployeeid)
from A,
     B
where B.toEmployeeid = A.id;

您应该使用正确的别名 A1 e A2 两次使用同一个表 A

select B.toEmployeeid
    , A1.EmployeeName
    ,  B.fromEmployeeid
    , A2.EmployeeName
from B
INNER JOIN  A A1  ON A1.Employeeid = B.toEmployeeid
INNER JOIN  A A2  ON A2.Employeeid = B.fromEmployeeid

这就是我让它工作的方式。 对于任何寻找答案的人。

select At.Employeeid, At.employeename,
      (select employeename from A as At
       where At.employeeid = Bt.fromemployeeid) as fromEmpId
from A as At,
     B as Bt
where Bt.toEmployeeid = At.Employeeid;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM