Php 如何得到带条件的mysql查询结果

Php 如何得到带条件的mysql查询结果,php,mysql,Php,Mysql,教师桌 teacher_id teacher_name ============================ 1 john 2 doe 学生桌 student_id student_name student_score teacher_id ========================================================== 1 amelia

教师桌

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的教师记录

这个问题怎么解决


谢谢你的回答,很抱歉我的英语不好

一个简单的子查询就可以解决这个问题

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

也可能是一个内部连接

一个简单的子查询就可以做到这一点

SELECT * FROM teacher WHERE teacher_id IN
(SELECT teacher_id FROM student WHERE student_score > 0)
SELECT teacher.* FROM teacher
LEFT JOIN student as student teacher.teacher_id = student.teacher_id
WHERE student.student_score > 0
也可能是内部连接

SELECT teacher.* FROM teacher
LEFT JOIN student as student teacher.teacher_id = student.teacher_id
WHERE student.student_score > 0
希望这对你有用


希望这对您有用。

SQL Basic应该可以帮助您。Select t可能重复。教师id,t。来自教师t、学生s的教师名称,其中t.teacher\u id=s.teacher\u id和s.score>0.SQL Basic应该可以帮助您。Select t可能重复。教师id,t。教师名称来自教师t,学生s,其中t.teacher\u id=s.teacher\u id,s.score>0。为什么使用子查询而不是带有join的单个查询?@e4c5谢谢先生。我有一个错误。我在语句中用teacher_id更改了id,这很好。@habitglad中的Milaci对小数据集很有帮助,没有区别,但mysql中的@Milaci对大数据集的子查询比内部联接慢。我使用了很多其他dbs postgresql和SQL server,但大约5年前就停止使用mysql了。在postgresql上,两者之间没有性能差异。因此,我习惯于编写子查询,因为它们更具可读性。希望这能解释。为什么要使用子查询而不是带有join的单个查询?@e4c5谢谢先生。我有一个错误。我在语句中用teacher_id更改了id,这很好。@habitglad中的Milaci对小数据集很有帮助,没有区别,但mysql中的@Milaci对大数据集的子查询比内部联接慢。我使用了很多其他dbs postgresql和SQL server,但大约5年前就停止使用mysql了。在postgresql上,两者之间没有性能差异。因此,我习惯于编写子查询,因为它们更具可读性。希望这能解释。