如何从不同的SQL查询结果创建表

如何从不同的SQL查询结果创建表,sql,Sql,我想使用一些查询的结果创建一个新表。我可能看错了,所以请随时告诉我。因此,我将尽量简化这个问题,而不使用代码将每个员工编号与表2中的每个经理级别列相匹配 我有两个表,一个是员工姓名和员工编号示例 表1 +-------------+-----------+-------------+-------------+ | emplpyeenum | firstname | last name | location | +-------------+-----------+----------

我想使用一些查询的结果创建一个新表。我可能看错了,所以请随时告诉我。因此,我将尽量简化这个问题,而不使用代码将每个员工编号与表2中的每个经理级别列相匹配

我有两个表,一个是员工姓名和员工编号示例

表1

+-------------+-----------+-------------+-------------+
| emplpyeenum | firstname |   last name |    location |
+-------------+-----------+-------------+-------------+
| 11          |    joe    |    free     | JE          |
| 22          |   jill    |   yoyo      | XX          |
| 33          |    yoda   |   null      | 9U          |
+-------------+-----------+-------------+-------------+
还有一个表,每个经理级别下都有员工编号,因此基本上是一个层次结构示例

表2

+---------+----------+----------+
| manager | manager2 | manager3 |
+---------+----------+----------+
|      11 |       22 |       33 |
+---------+----------+----------+
我想创建一个新表,除了数字之外还有名称,例如,但是名称旁边有员工编号

+---------+--------+----------+
| level 1 | level2 |  level3  |
+---------+--------+----------+
| jill    |   joe  |    yoda  |
+---------+--------+----------+
我该怎么做


编辑抱歉,伙计们,我没有创建新表或视图的权限

您只需执行一个基本的创建表,然后执行一个插入选择以的方式填充表即可。您所要做的就是将我提供的select语句替换为用于创建levels表输出的语句

create table Levels
(
level1 varchar(25),
level2 varchar(25),
level3 varchar(25)
)


insert into Levels(level1, level2, level3)
select * from tables --here you would put the select statement that you used to create the information. If you dont have this script then let me know

为什么不将您的
表2
更改为此

+------------+----------+
| EmployeeId | ManagerId|
+------------+----------+
|      11    |     NULL |
+------------+----------+
|      22    |     11   |
+------------+----------+
|      33    |     22   |
+------------+----------+
然后你可以用这些数据做你想做的事情。至少你的数据会正常化。在您的
表2中
。如果33号员工雇佣另一名低于他的员工,会发生什么?您将添加另一列吗

根据您可用的表,这将为您提供所需的结果

SELECT m1.firstname, m2.firstname, m3.firstname
FROM table2 t
LEFT JOIN table1 m1 ON m1.employeenum = t.manager
LEFT JOIN table1 m2 ON m2.employeenum = t.manager2
LEFT JOIN table1 m3 ON m3.employeenum = t.manager3

您知道如何编写一个查询,在新表中为您提供所需的值吗?@Shawn不知道,我只是根据表1中的员工编号创建多个内部联接到表2中的经理列Learn how Do
JOIN
@Eric抱歉,我知道如何进行联接。我正在进行内部联接,但不知道如何组织新的两个,使其看起来像我想要的那样,即显示层次结构决定层次结构的是什么?谢谢@B.Cratty我的脚本只是从表2中的表1内部联接中选择Emplypeenum firstname last name,其中表1.emplypeenum=manager。我对每个经理级别的列进行了此查询我不知道是否有更简单的方法,这样我就不必为每个经理级别进行新的内部联接查询我没有创建新表或视图的权限否我需要显示谁向谁报告,因此在此处使用每个经理级别的列效果最好:(@bleeetiso存储数据和显示数据是两件完全不同的事情。如果您以混乱的格式存储数据,请好运尝试检索它。也许您应该阅读一些介绍关系数据库的书籍。@bleeetiso@bleeetiso抱歉,我没有提到我没有创建新表或视图的权限