【发布时间】:2020-10-12 21:13:13
【问题描述】:
我有一张员工及其老板的表格:
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);
【问题讨论】:
-
用您正在使用的数据库标记您的问题。 文本表形式的样本数据比图像更受欢迎。一个 db/sql 小提琴很有帮助。还要定义“直接下属”的含义。
-
@GordonLinoff 我已经添加了 INSERTS 来生成数据库。
标签: sql