在阶段表中查询学员阶段一已完成但阶段二未完成,MySQL
时间: 2024-09-25 10:10:45 浏览: 60
在MySQL中,如果你有一个表示学员学习进度的阶段表,通常会有字段记录每个学员对各个阶段的学习状态。假设你的表结构大致如下:
```sql
CREATE TABLE progress (
student_id INT,
stage_id INT,
completed BOOLEAN
);
```
要查询学员阶段一已完成(`completed = true`)但阶段二还未完成(`stage_id = 2 AND completed = false`),你可以使用如下的SQL语句:
```sql
SELECT student_id
FROM progress
WHERE stage_id = 1 AND completed = TRUE
AND NOT EXISTS (
SELECT 1
FROM progress AS p2
WHERE p2.student_id = progress.student_id AND p2.stage_id = 2 AND p2.completed = TRUE
);
```
这里使用了一个NOT EXISTS子查询,检查是否有学员同时完成了阶段一和阶段二。如果找不到匹配的第二阶段已完成的记录,则说明该学员阶段一已完成但阶段二未完成。
阅读全文