假设有以下两个表:
students 表:
| id | name | age | department |
|----|--------|-----|------------|
| 1 | 张三 | 20 | 计算机系 |
| 2 | 李四 | 22 | 电子工程系 |
| 3 | 王五 | 19 | 化学系 |
| 4 | 赵六 | 21 | 计算机系 |
| 5 | 钱七 | 23 | 物理系 |
| 6 | 孙八 | 18 | 数学系 |
departments 表:
| id | name |
|----|------------|
| 1 | 计算机系 |
| 2 | 电子工程系 |
| 3 | 化学系 |
| 4 | 物理系 |
| 5 | 数学系 |
可以使用以下 SQL 查询语句来查询所有不比“计算机”系的所有学生年龄大的其他系的学生信息:
```sql
SELECT s.id, s.name, s.age, s.department
FROM students s
WHERE s.department <> '计算机系' AND s.age > (
SELECT MAX(age)
FROM students
WHERE department = '计算机系'
)
```
该查询语句中,首先在 `students` 表中查询所有不属于“计算机”系的学生,并筛选出年龄大于“计算机”系学生中最大年龄的学生。这里使用了子查询来获取“计算机”系学生中最大年龄。最后返回符合条件的学生信息。
注意,该查询语句假设每个系都有至少一个学生,否则子查询将返回 NULL,导致整个查询结果为空。如果需要处理这种情况,可以使用 COALESCE 函数或者 IFNULL 函数来将 NULL 转换为一个默认值。