0

ガレージデータベースの場合、セクションテスト中にメーカーコンポーネントの平均スコアを見つけようとしています. この次の SQL は完全に機能しているようです。

SELECT component.manufacturer_id, AVG(section.grades) AS Grade_Average 
FROM section
INNER JOIN component
  ON section.mod_id=component.cid
GROUP BY component.manufacturer_id

ただし、結果は 1 行しか表示されません (つまり、manufacturer_id が 1 つだけの場合)。

4

2 に答える 2

1

すべての値を返したい場合はmanufacturer_id、次を使用する必要がありますLEFT JOIN

SELECT component.manufacturer_id, 
  AVG(section.grades) AS Grade_Average 
FROM component
LEFT JOIN section
  ON status.mod_id=component.cid  
GROUP BY component.manufacturer_id;

現在のクエリはINNER JOIN、両方のテーブル間で一致する行のみを返す を使用しています。

も使用status.mod_idしてJOINいますがsection、 に参加しています。元の投稿に参加を追加する必要がありますstatusか、それとも間違って入力しましたか?

于 2013-03-19T20:22:20.423 に答える
0

セクションとコンポーネントの間に内部結合があります。特定のメーカーの両方のテーブルに一致するレコードがない場合、それらは完全に除外されます。

于 2013-03-19T20:21:24.767 に答える