0

選択を正しく作成するには、助けが必要です...

これが私のテーブルです:

**teacher** :
id
name

**classroom** :
id
teacher_id

**students** :
id
name
classroom_id
status

教室を持っているすべての教師を選択しようとしています。クラスルームは、すべての生徒のステータスが 10 を超えている場合にのみ選択できます...

たとえば、生徒のステータスが 5 の場合、教室が選択されない可能性があるため、教師が選択されない可能性があります (別の OK 教室がある場合を除きます)。

4

1 に答える 1

1

これを試して :

select * from teacher t
inner join classroom c on t.id=c.teacher_id
inner join 
(select * from students 
group by classroom_id having classroom_id not in 
(select distinct classroom_id from students where status<=10)) s 
on s.classroom_id=c.id

更新:あなたのコメントから、上記のクエリは機能すると思いますが、このクエリをテストできます:

select * from teacher t where id in
   (select distinct teacher_id from classroom where id in
       (select distinct classroom_id from students 
        group by classroom_id having classroom_id not in 
          (select distinct classroom_id from students where status<=10)
        )
    )
于 2013-07-26T03:18:54.640 に答える