用SQL编写动态查询

用SQL编写动态查询,sql,Sql,我有一张名为employee的表格,如下所示 CREATE TABLE employee ( id INTEGER, manager INTEGER, name TEXT, FOREIGN KEY(manager) REFERENCES employee(id) ); 我想获取员工名单及其经理姓名。我想你可能已经发现了这一点,但对于其他人来说 SELECT e.name as employee, m.name as manager

我有一张名为employee的表格,如下所示

CREATE TABLE employee (
  id        INTEGER, 
  manager   INTEGER, 
  name      TEXT,
  FOREIGN KEY(manager) REFERENCES employee(id)
);

我想获取员工名单及其经理姓名。

我想你可能已经发现了这一点,但对于其他人来说

    SELECT e.name as employee, m.name as manager
    FROM employee e LEFT JOIN employee  m ON e.manager = m.id
    ORDER BY e.name
使用自联接

SELECT *
   FROM employee e INNER JOIN employee e1 ON e.manager = e1.id

做一个self join.BTW,manager应该是一个整数id。id列应该是主键。你的答案是第一个,它有更好的表别名和整体结构。