subquery.md 967 字节
Newer Older
M
Mars Liu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
# 子查询

现有员工表

```mysql
create table employee
(
    id     serial primary key,
    name   varchar(256),
    dept   varchar(256),
    salary decimal(12, 4)
);
```

Joe 希望找出比销售部(dept 为 sale)工资最高的员工工资更高的那部分人,查询出他们的完整信息,下面哪一项可以满足要求?

## 答案

```mysql
select id, name, dept, salary
from employee
where salary > (select max(salary)
                from employee
                where dept = 'sale')
```

## 选项

### A

```mysql
select id, name, dept, salary
from employee
where dept = 'sale'
group by dept
having salary > max(salary)
```

### B

```mysql
select l.id, l.name, l.dept, l.salary
from employee as l
         join employee as r on l.salary > max(r.salary)
where r.dept = 'sale'
group by r.dept 
```

### C

```mysql
select id, name, dept, salary
from employee
having salary > (select max(salary) from employee where dept = 'sale')
```