1. 程式人生 > >【轉】mysql中為同一張表取多個別名

【轉】mysql中為同一張表取多個別名

select employee1.name as employee from employee
              employee1,employee employee2 where employee1.managerId=employee2.id and
              employee1.salary>employee2.salary;

這裡給同一張表取別名的方法是,

select 列名 as 新列名 from 表名 新表名1,表名 新表名2;
如果name重複出現,想要在多個name中只保留一個,則在表名前面加distinct;

select distinct employee1.salary as employee from employeer
              employee1,employeer employee2 where employee1.id!=employee2.id and
              employee1.salary=employee2.salary ;

附上原題:
Employee 表包含所有員工,他們的經理也屬於員工。每個員工都有一個 Id,此外還有一列對應員工的經理的 Id。

+----+-------+--------+-----------+
| Id | Name  | Salary | ManagerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | NULL      |
| 4  | Max   | 90000  | NULL      |
+----+-------+--------+-----------+

給定 Employee 表,編寫一個 SQL 查詢,該查詢可以獲取收入超過他們經理的員工的姓名。在上面的表格中,Joe 是唯一一個收入超過他的經理的員工。

+----------+
| Employee |
+----------+
| Joe      |
+----------+