2016-12-28 70 views
1

老师表的结果如何获得MySQL查询与条件

teacher_id  teacher_name 
============================ 
1    john 
2    doe 

学生表

student_id  student_name student_score teacher_id 
========================================================== 
1    amelia   0    1 
2    anderson  0    1 
3    fabiano   0    1 
4    ronaldo   0    2 
5    peter   6    2 
6    alex   0    2 

结果

teacher_id  teacher_name 
============================ 
2    doe 

结果是老师记录谁一个或更多的是他的学生得分> 0。

如何查询这个?

感谢您的回答和对不起我的英文不好

+0

SQL Basic应该可以帮到你。 – Milaci

+0

[Left join with condition]的可能重复(http://stackoverflow.com/questions/9160991/left-join-with-condition) – PereG

+0

选择t。 teacher_id,T。 teacher_name from teacher t,student's where t.teacher_id = s.teacher_id and s.score> 0. – Milaci

回答

3

一个简单的子查询的伎俩

SELECT * FROM teacher WHERE teacher_id IN 
(SELECT teacher_id FROM student WHERE student_score > 0) 

也有可能是内连接

+0

为什么使用子查询而不是单个查询加入? – Milaci

+0

@ e4c5谢谢先生。我有这个错误。在IN语句之前,我使用teacher_id更改了id,它的工作很好。 –

+0

@Milaci出于习惯 – e4c5

1
SELECT teacher.* FROM teacher 
LEFT JOIN student as student teacher.teacher_id = student.teacher_id 
WHERE student.student_score > 0 

希望这会为你工作。