正确答案是:A: SELECT name, salary, performance FROM employ LEFT JOIN performance ON employ.eno = performance.eno LEFT JOIN salary ON employ.eno = salary.eno WHERE salary.salary > 5000
分析:
1. **选择字段**:
- 题目要求查询姓名和工作绩效,因此需要选择 `name` 和 `performance` 字段。
- A、B、C、D 选项中都包含这些字段。
2. **表连接**:
- 三个表 `employ`、`performance`、`salary` 通过公共字段 `eno` 进行连接。
- A、C、D 选项中,`employ` 表通过 `eno` 字段分别连接到 `performance` 和 `salary` 表,符合题意。
- B 选项中,`performance` 表通过 `eno` 字段连接到 `salary` 表,这不符合题目中通过公共字段 `eno` 连接三表的要求。
3. **过滤条件**:
- 需要过滤出工资高于 5000 的员工,因此需要在 `WHERE` 子句中使用条件 `salary.salary > 5000`。
- A 选项正确使用了 `WHERE salary.salary > 5000`。
- C 选项中,`WHERE salary > 5000` 缺少表名或别名,语法不完整。
- D 选项使用 `HAVING` 子句不合适,因为 `HAVING` 通常用于聚合函数后的过滤。
综上所述,选项 A 是正确的答案。