sql - 在 SQL 中查找特定员工的所有直接下属
问题描述
我有一张员工及其老板的表格:
CREATE TABLE IF NOT EXISTS Personnel (
emp CHAR(10) NOT NULL PRIMARY KEY,
boss CHAR(10) DEFAULT NULL REFERENCES Personnel(emp),
salary DECIMAL(6,2) NOT NULL DEFAULT 100.00);
我需要找到特定员工的所有直接下属。我的代码只显示每个老板的一名员工:
SELECT (SELECT E2.emp FROM Personnel E2 WHERE E1.emp = E2.boss), E1.emp FROM Personnel E1;
问题:就是把每个老板的所有员工都打印成一行!
下面是构建数据库的代码:
INSERT INTO Personnel VALUES('Ivanov', Null, 1000);
INSERT INTO Personnel VALUES('Petrov', 'Ivanov', 900);
INSERT INTO Personnel VALUES('Sidorov', 'Ivanov', 850);
INSERT INTO Personnel VALUES('Smirnov', 'Petrov', 840);
INSERT INTO Personnel VALUES('Fedorov', 'Petrov', 800);
INSERT INTO Personnel VALUES('Andreev', 'Sidorov', 700);
INSERT INTO Personnel VALUES('Alekseev', 'Sidorov', 700);
INSERT INTO Personnel VALUES('Borisov', 'Sidorov', 740);
解决方案
“直接下属”是指上司就是这个人。因此,一个简单的where
子句就足够了:
select p.*
from personnel p
where p.boss = ?;
?
是老板名字的占位符。
推荐阅读
- ios - 如何用经典的 UIButton 替换 UIBarButtonItem
- terraform - 属性“触发器”的值不合适:需要字符串映射
- javascript - 正则表达式强制特定的 3 个字符
- php - 如何修复“未捕获的 InvalidArgumentException:找不到操作:CreateCollection”
- selenium - Selenium::Remote::Driver - 过时的元素引用:元素未附加到页面文档
- apache-spark - PySpark 从多列中选择前 N 个
- javascript - 量角器无法识别功能
- highcharts - 图表上的 HighCharts 发光效果不影响多个图表
- python - nyoka AttributeError:该层从未被调用,因此没有定义的输入形状
- java - 通过 Linux 执行 Java 时面临的问题:无法找到或加载主类