【轉】mysql中為同一張表取多個別名
阿新 • • 發佈:2018-11-17
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 |
+----------+