我有3个SQL表:
tb1: name id and phone of student
tb2: courseName,courseNum
tb3: id,courseNum,grade
我需要找到他们的成绩> 80
的学生的姓名和课程名称我试过了:
select * from tb1 where taz in(
select taz from tb3 where grade>80
)
和
select courseNum from tb2 where courseName in(
select * from tb3 where grade>80
)
它有效,但我如何加入2子查询?
答案 0 :(得分:0)
尝试使用如下连接:
SELECT *
FROM tb3 t3 INNER JOIN tb2 t2
ON t3.courseNum = t2.courseNum
INNER JOIN tb1 t1
ON t2.id = t1.id
WHERE t3.grade > 80
答案 1 :(得分:0)
试试这个:
SELECT c.name, b.courseName, a.grade
FROM tb3 a
JOIN tb2 b ON a.courseNum = b.courseNum
JOIN tb1 c ON a.id = c.id
WHERE a.grade > 80
答案 2 :(得分:0)
以下查询将为您提供所需的结果:
SELECT t1.Name, t2.CourseName, t3.grade from tb3
INNER JOIN tb2 t2 ON t3.CourseNum = t2.CourseNum
INNER JOIN tb1 t1 ON t1.id = t3.Id
where t3.grade > 80
答案 3 :(得分:0)
SMA答案是对的,但需要稍加修改。
第一个:第二个ON的条件应为:t3.id = t1.id
第二:我们需要name和courseName。
setItemViewCacheSize()