0

1つのタイプの値しかないデータベース内のフィールドを検索するクエリを作成しようとしています。たとえば、各人(regNum)は一度に最大4種類のステータス(' A'、' B'、' C'、または' D')を持つことができ、ステータスが''のみの人を見つけたいと思いますC

SELECT DISTINCT tbl_studentModules.regNum FROM tbl_studentModules
        LEFT JOIN tbl_student
        ON tbl_student.regNum = tbl_studentModules.regNum
        WHERE status ? 'C' AND level = $level"

疑問符は、「isonly」に似たものを言うステートメントが必要な場所を表します。

4

2 に答える 2

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
于 2012-11-30T00:07:27.773 に答える
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';
于 2012-11-30T00:36:28.693 に答える