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上,两者之间没有性能差异。因此,我习惯于编写子查询,因为它们更具可读性。希望这能解释。