【问题标题】:MySql query : Show Columns as Rows from 1 tableMySql 查询:将 1 个表中的列显示为行
【发布时间】:2014-12-07 16:09:13
【问题描述】:

表格:员工和项目

员工

EmployeeID|  Username | 
----------+-----------+
1         | Manager1  | 
2         | Manager2  | 
3         | Employee3 | 
4         | Employee4 | 
5         | Employee5 | 

项目:

注意: Project_ManagerIDEmployeeID 列来自 1 个表(Employee

 ProjectID | Project_Name| Project_ManagerID | EmployeeID
-----------+-------------+-------------------+---------
1          | Project 1   | 1                 | 3
2          | Project 2   | 1                 | 4

项目表说明: 对于每个项目,有 2 名员工参与。项目经理和正式员工

我要查找的查询结果:

ProjectID  | EmployeeID | Username  |
-----------+------------+-----------+
1          | 1          | Manager1  |
1          | 3          | Employee3 |
2          | 1          | Manager1  |
2          | 4          | Employee4 |

我尝试进行自联接,但在在 Employee 表中显示 2 列以将单个列显示为行时遇到了困难,就像我的查询结果一样。

我总是以 2 行结束。每个项目应该有 2 行员工。

2 Projects * 2 Employees = 4 Rows in total

【问题讨论】:

    标签: mysql database join self-join


    【解决方案1】:

    你可以做 union all 一些事情

    select
    p.ProjectID,e.EmployeeID,e.Username 
    from Project p 
    join Employee e on e.EmployeeID = p.Project_ManagerID
    
    union all
    
    select
    p.ProjectID,e.EmployeeID,e.Username 
    from Project p 
    join Employee e on e.EmployeeID = p.EmployeeID
    

    【讨论】:

      猜你喜欢
      • 2020-03-27
      • 2021-08-20
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多