0

私は 2 つのテーブルを持っています。それらを a と b と呼びます。ここで、a は b と 1 対多の関係で関連付けられています。テーブル b の多くの関連レコードのいずれかが条件に一致するテーブル a から任意の行を選択したいと思います。一致するテーブル b の各行に対して 1 つの結果が返されるため、基本的な結合は機能しません。1 つ以上の関連レコードが一致するテーブル a の各行に対して 1 つの結果が必要です。

簡単な例として、テーブル Departments と関連するテーブル Employees があるとします。各従業員には 1 つの部門がありますが、各部門には明らかに複数の従業員がいる可能性があります。特定の基準に一致する 1 人以上の従業員がいる部門ごとに 1 つの行を返すクエリが必要です。たとえば、「今月の従業員」を獲得した従業員が 1 人以上いる部門などです。どうすればいいですか?ありがとう。

4

3 に答える 3

2
SELECT * FROM department d
WHERE EXISTS (
   SELECT * FROM employee e
   JOIN badges b ON b.person_id = e.person_id AND b.badge = 'EotM'
   WHERE e.dep_id = d.dep_id
   AND e.gender = 'F'
   );
于 2013-07-12T16:40:53.167 に答える