首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据mysql中的另一列从列中检索数据

根据mysql中的另一列从列中检索数据
EN

Stack Overflow用户
提问于 2013-09-26 14:26:46
回答 2查看 69关注 0票数 1

我有一位有列的员工

代码语言:javascript
复制
| EmpID | Name | Department | Supervisor |
  • ID是主键,是整数。
  • 名称是一个字符串。
  • 主管是指员工的整数。

我想把所有员工列在主管的名字旁边。

代码语言:javascript
复制
 SELECT empid, name, supervisor
 FROM Employee;

给我:

代码语言:javascript
复制
+-------+--------+------------+
| empid | name   | supervisor |
+-------+--------+------------+
|     1 | John   |       NULL |
|     2 | Roger  |       NULL |
|     3 | Pete   |       NULL |
|     4 | Rafael |       NULL |
|     5 | Rafael |          1 |
|     6 | Obama  |          1 |
|     7 | Karl   |          1 |
|     8 | Carl   |          1 |
|     9 | Moni   |          2 |
|    10 | Dave   |          9 |
|    11 | David  |          9 |
|    12 | Carl   |          9 |
|    13 | Linda  |       NULL |
|    14 | Maria  |       NULL |
|    15 | Monk   |          3 |
|    16 | Peter  |       NULL |
|    17 | Pete   |          4 |
|    18 | Marina |          4 |
|    19 | John   |          4 |
|    20 | Alvaro |          4 |
+-------+--------+------------+

我的愿望是得到这个,但是我想要的不是主管列中的数字ID,而是实际的名称--那个编号ID。

我该怎么做?我想我需要一个漂亮的嵌套查询,但我不知道如何从mysql的文档中实现这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-26 14:32:38

你在找JOIN

JOIN允许您生成两个数据集的笛卡儿积,然后可以根据需要进行筛选。通常,可以在外键或其他重要索引上联接表。在您的例子中,您希望在空In监督关系上加入这个表。下面是操作步骤:

代码语言:javascript
复制
SELECT e.id, e.name, s.name 
FROM Employee e LEFT JOIN Supervisor s ON e.supervisor = s.id

联接语法非常强大,需要一段时间才能正确掌握。为了更好地理解它并获得一个坚实的起点,我建议您阅读正式文件

票数 0
EN

Stack Overflow用户

发布于 2013-09-26 14:30:08

代码语言:javascript
复制
select Employee.id, Employee.name, Supervisor.name from Employee left join Supervisor on Employee.supervisor = Supervisor.id 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19030977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档