我正在尝试创建一个查询,该查询将搜索数据库中只有一种类型值的字段。例如。每个人(regNum
)一次最多可以拥有四种状态(“A
”,“B
”,“C
”或“{{1我希望找到那些只有“D
”状态的人。
C
问号代表我想要一个类似'只是'的陈述的地方。
答案 0 :(得分:0)
SELECT sm.regNum
FROM tbl_studentModules sm
LEFT JOIN tbl_student s ON s.regNum = sm.regNum
AND level = $level
group by sm.regnum
HAVING sum(status <> 'C') = 0
答案 1 :(得分:0)
我建议用临时表来做这件事。抓住所有没有C的东西,如下:
DROP TABLE IF EXISTS t1;
CREATE TEMP TABLE t1 AS
SELECT DISTINCT tbl_studentModules.regNum
FROM tbl_studentModules
LEFT JOIN tbl_student
ON tbl_student.regNum = tbl_studentModules.regNum
WHERE status NOT IN ('A','B','D') AND level = $level";
SELECT * FROM t1 WHERE status = 'C';