查询“计算机系”与“电子工程系”不同职称的教师的信息,包括tno,tname和Prof列,用子查询语句
时间: 2024-03-25 19:36:36 浏览: 111
好的,以下是使用子查询的查询语句:
```
SELECT tno, tname, Prof
FROM teacher
WHERE Dept = '计算机系' AND Prof NOT IN (
SELECT Prof
FROM teacher
WHERE Dept = '电子工程系'
)
UNION
SELECT tno, tname, Prof
FROM teacher
WHERE Dept = '电子工程系' AND Prof NOT IN (
SELECT Prof
FROM teacher
WHERE Dept = '计算机系'
);
```
这个查询语句中,我们使用两个子查询,分别查找“计算机系”和“电子工程系”两个部门中不同职称的教师。首先,在第一个 `SELECT` 语句中,我们使用 `WHERE` 条件过滤出“计算机系”中职称不在“电子工程系”中出现过的教师信息。然后,在第二个 `SELECT` 语句中,我们使用 `WHERE` 条件过滤出“电子工程系”中职称不在“计算机系”中出现过的教师信息。最后,我们使用 `UNION` 运算符把这两个结果集合并起来,选择出教师的编号、姓名和职称信息。
相关问题
查询“计算机系”与“电子工程系”不同职称的教师的信息,包括tno,tname和Prof列
好的,以下是查询语句:
```
SELECT tno, tname, Prof
FROM teacher
WHERE Dept = '计算机系' OR Dept = '电子工程系'
GROUP BY tno, Prof
HAVING COUNT(DISTINCT Dept) = 2;
```
这个查询语句中,我们通过 `WHERE` 条件过滤出“计算机系”和“电子工程系”两个部门的教师信息。然后使用 `GROUP BY` 按照教师编号和职称分组,使用 `HAVING` 过滤出同时在这两个部门工作的教师。最后,我们用 `SELECT` 语句选择出教师的编号、姓名和职称信息。
写出SQL语句,查询“计算机系”与“电子工程系”不同职称的教师的信息(注:即前者有而后者没有的职称),包括Tno、Tname和Prof列,
可以使用以下SQL语句查询:
```
SELECT Tno, Tname, Prof
FROM teacher
WHERE Dept = '计算机系' AND Prof NOT IN (
SELECT Prof
FROM teacher
WHERE Dept = '电子工程系'
);
```
该语句首先从 `teacher` 表中选取 `Tno`、`Tname` 和 `Prof` 列,然后使用 `WHERE` 子句筛选出 `Dept` 为 “计算机系” 且 `Prof` 不在子查询中出现的教师信息。子查询选出了 `Dept` 为 “电子工程系” 的教师的职称,因此该语句返回的是那些在 “计算机系” 有职称,但在 “电子工程系” 没有职称的教师的信息。
阅读全文