この質問はすでに行われている可能性がありますが、答えが見つからないようです。
JOIN
2つのテーブルのから10個のフィールドを選択しています。結果は約1186行のデータです。これらの行では、1つの一意のフィールド()を除いて、すべての目的と目的でいくつかが重複していますClassId
。このフィールドが必要ですが、それは私が「ユニーク」と定義したものを取得するのを妨げています。たとえば、、、のみをクエリするCode
とTeacherDescrip
、Term
1120レコードが生成されます。
WHERE
私はこれと同じクエリを実行したいと思っていましたが、「重複」の原因となっている一意のフィールドを除外する、より狭いフィールドのセット(正確には上記の3つ)を検索するサブクエリを含む句を追加しました。もちろん、私が受け取ったエラーは以下のとおりです。
「サブクエリがEXISTSで導入されていない場合、選択リストで指定できる式は1つだけです。」
EXISTS
代わりに使用しようとしたとき、ClassScedule.Code IN
私はまだ完全な1186を取り戻しました。
これが私の質問です:
SELECT DISTINCT ClassId
,Code
,Section
,Course
,Students
,ClassStart
,TeacherDescrip
,AdTeacherID
,email
,Term
,Campus
FROM ClassScedule
JOIN staff ON staff.StaffID = ClassScedule.AdTeacherID
WHERE ClassStart BETWEEN '2012-03-01' AND '2012-03-30'
AND ClassScedule.Code IN
(SELECT DISTINCT ClassScedule.Code, TeacherDescrip, Termcode
FROM ClassScedule
WHERE ClassStart BETWEEN '2012-03-01' AND '2012-03-30')
AND TeacherDescrip IS NOT NULL
ORDER BY Instructor