2017-11-23 15 views
0

私が持っている3 SQLテーブル:私は学生の名前とcourseNameを見つける必要があるサブクエリを使用して3つのテーブルを結合する方法は?

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つのサブクエリにどのように参加できますか?以下のように結合を使用して

+3

ヒント:** 'JOIN' ** – Wanderer

+1

サンプルテーブルのデータと予想される結果を追加します。書式設定されたテキストで、画像ではありません。 – jarlh

答えて

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 
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 
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 
0

SMAの答えは本当ですが、必要性少し修正。
最初:二ONの状態は次のようになります。t3.id = t1.id
:我々は名前とcourseNameをしたいです。

SELECT t1.name, t2.coursename 
FROM tb3 t3 INNER JOIN tb2 t2 
ON t3.courseNum = t2.courseNum 
INNER JOIN tb1 t1 
ON t3.id = t1.id 
WHERE t3.grade > 80 
関連する問題