テーブル内の 1 つのフィールドに同じ値が含まれるすべての行を検索する SQL ステートメントを作成しようとしています。ただし、別の属性に対して異なる値を持つ行のみを返したいです。これを説明するのは少し難しいです。
スキーマを持つテーブル Teacher があります。
TeacherName varchar(50)
CourseN int
Quarter varchar(50)
3 つのフィールドを組み合わせて主キーを構成するため、クォーターが異なれば、同じ教師が同じコースを教えることができます。私が解決しようとしている問題は、少なくとも 2 つの異なるコース (四半期に関係なく) を教えるすべての教師の (異なる) 名前を返すにはどうすればよいかということです。
これは研究室のためのもので、私はこの問題を約 1 週間解決しようとしてきましたが、まったく理解できないので、ここに来ることにしました。前の質問では、同じコースを少なくとも 2 回教えている教師の名前の個別のリストを見つけるように求められました。私はこれを思いつきました:
SELECT DISTINCT [TeacherName]
FROM [Teacher]
GROUP BY [TeacherName],
[CourseN]
HAVING COUNT( [CourseN] ) >= 2
しかし、私が今解決しようとしている問題は似ていますが、少なくとも 2 つの異なるコースを教えているテーブルに複数回現れる教師だけが必要です。データベースが何をしているかを正確に理解することが重要なので、答えだけでなく、いくつかのガイダンスも本当に感謝しています。