2つのテーブルから値を返すために、クエリで2つの別々の内部テーブル結合を実行しようとしています。1つのクエリの2つのテーブル結合 - 混乱している結果
結果セットで1行が取得されています... pname = null、平均(給与)= null。 スキーマに11個のプロジェクトがあるため、結果セットには11個の行が含まれている必要があります。
誰かが正しい方向に向かうことができますか?
あなたは2つのテーブルから値を返すために、クエリで2つの別々の内部テーブル結合を実行しようとしています。1つのクエリの2つのテーブル結合 - 混乱している結果
結果セットで1行が取得されています... pname = null、平均(給与)= null。 スキーマに11個のプロジェクトがあるため、結果セットには11個の行が含まれている必要があります。
誰かが正しい方向に向かうことができますか?
あなたはあなたはgroup by
が欠落しているありがとう:ほとんどのデータベースで
SELECT pname, avg(salary)
FROM project p INNER JOIN
department d
on p.dnum = d.dnumber INNER JOIN
employee e
ON e.dno = d.dnumber
GROUP BY pname;
は、お使いのバージョンでは、明らかな構文エラーで失敗するでしょう。 ONLY_FULL_GROUP_BY
モード(hereを参照)を使用する場合、MySQLはANSI標準のみを適用します。
使用すると、外部結合の代わりに、内側の左 に参加したり、あなたは私にあなたのデータテーブルを表示することができます
あなたのクエリでdepartment
テーブルが必要ですか?
要約する必要があるすべてのデータが次のクエリによって返されますか?
SELECT pname, salary
FROM (SELECT salary, dno AS dnum FROM employee) e
NATURAL JOIN project;
それがない場合、これはあなたが必要に要約することがあります
SELECT pname, AVG(salary) AS average_salary
FROM (SELECT salary, dno AS dnum FROM employee) e
NATURAL JOIN project
GROUP
BY pname;
PNAMEしてグループを追加します。句は0行を返すようです。 –
@ Matthew.learn。 。 。それは違う問題です。あなたの参加条件は間違っているようです。サンプルデータと希望の結果で別の質問をする必要があるかもしれません。 –
@onedaywhen。 。 。私はあなたがそのコメントを誤解したと思う。それはOPの元の質問に関するものでした。私は明らかにした。 –