现有三张表employ(雇员信息表),performance(雇员绩效表),salary(雇员工资表),三张表公共字段为eno(雇员号), 现需要连接三表,并查询SQL工资(salary)高于5000的员工的姓名(name)和他的工作绩效(performance)的最完整的语句为? 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 B. SELECT employ.name,salary. salary, performance . performanceFROM employ LEFT JOIN performance ON employ.eno= performance.eno LEFT JOIN salary ON performance.eno = salary.enoWHERE salary .salary>5000 C. SELECT employ.name,salary. salary, performance . performanceFROM employ LEFT JOIN performance ON employ.eno= performance.eno LEFT JOIN salary ON employ.eno = salary.enoWHERE salary>5000 D. SELECT employ.name,salary. salary, performance . performanceFROM employ LEFT JOIN performance ON employ.eno= performance.eno LEFT JOIN salary ON employ.eno = salary.enoHAVING salary .salary>5000
时间: 2024-03-01 16:50:37 浏览: 17
答案是 A.
根据题目,我们需要连接三张表 employ、performance 和 salary,并查询工资高于 5000 的员工的姓名和绩效。因此,我们需要使用 LEFT JOIN 将三张表连接起来,并使用 WHERE 子句对工资进行筛选。
选项 A 中的查询语句最接近正确答案:
```
SELECT employ.name, salary.salary, performance.performance
FROM employ
LEFT JOIN performance ON employ.eno = performance.eno
LEFT JOIN salary ON employ.eno = salary.eno
WHERE salary.salary > 5000;
```
其中,LEFT JOIN 子句将 employ、performance 和 salary 三张表连接起来,ON 子句指定连接条件。然后使用 WHERE 子句筛选工资高于 5000 的记录。最后查询 employ 表中的 name 列,salary 表中的 salary 列,以及 performance 表中的 performance 列。
因此,答案是 A。
相关问题
三张表,把成绩表中张三的计算机课程成绩改为90分
假设这三张表分别为:学生表(student)、课程表(course)、成绩表(score)。
你可以使用以下 SQL 语句来将成绩表中张三的计算机课程成绩改为90分:
```
UPDATE score SET score = 90
WHERE student_id = (SELECT id FROM student WHERE name = '张三')
AND course_id = (SELECT id FROM course WHERE name = '计算机');
```
注意,这里假设学生名字和课程名称都是唯一的,如果不是唯一的,则需要使用其他条件来定位到具体的学生和课程。
三张表什么情况下用关系表
三张表在哪些情况下用关系表取决于这三张表之间的关系。如果这三张表之间存在关联关系,例如它们之间有共同的字段或者某些字段可以作为外键进行关联,那么我们可以将这三张表合并成一个关系表。这样可以避免数据冗余,提高数据的一致性和完整性,方便数据的查询和管理。如果这三张表之间没有明显的关联关系,那么可以考虑将它们分别作为独立的表进行管理。