簡體   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