あなたのクエリは、複数の理由で失敗する可能性があります。
@Patashuがテーブル修飾列名についてあなたに言ったことに加えてJOIN
、テーブルを適切に扱う必要があります。Instructor
あなたのクエリはあいまいなので(情報が不足しているため)、次のようになります。
SELECT ie.Instructor
,SUM(ie.instreffective_avg + h.howmuchlearned_avg + ir.instrrespect_avg)/5
FROM instreffective_average ie
JOIN howmuchlearned_average h USING (Instructor)
JOIN instrrespect_average ir USING (Instructor)
GROUP BY Instructor
読みやすくするために、テーブルのエイリアスを追加しました。
これは、3 つのテーブルのそれぞれに、Instructor
それらを結合できる列があることを前提としています。JOIN
条件がなければCROSS JOIN
、すべてのテーブルのすべての行が他のすべてのテーブルのすべての行と結合されることを意味します。ほとんどの場合、非常に高価なナンセンスです。
USING (Instructor)
の短い構文ですON ie.Instructor = h.Instructor
。また、結合された (必然的に同一の) 列を 1 つに折りたたみます。Instructor
したがって、私の例のSELECT
リストでは、テーブル修飾なしで逃げることができます。すべての RDBMS がこの標準 SQL 機能をサポートしているわけではありませんが、詳しい情報を提供できませんでした。