これは面接で私に聞かれた面接の質問で、答えられませんでした。助けてください..
2つのテーブルを1対多の関係で結合する最も効率的な方法は何ですか
最も効果的な方法は、次のようにINNER JOINを使用することです。
SELECT *
FROM Parent P
INNER JOIN Child C
ON C.ParentId = P.ParentId
また、子レベルで集計が必要な場合は、GROUP BYとSUM、およびAVGまたはその他の集計関数を追加できます。
SELECT P.Name
, P.Address
, SUM(C.Amount)
FROM Parent P
INNER JOIN Child C
ON C.ParentId = P.ParentId
GROUP BY P.Name
, P.Address
質問には「1対多の関係」と明記されているため、主キーと外部キーの関係について説明するよう求められている可能性があります。
この場合、次のように言うことができます。
「1対多」関係の「1」側のテーブルには、主キー列が必要です。他のテーブルには、最初のテーブルの主キーを指すように定義された外部キーが必要です。両方のテーブルから結果を返すには、
INNER JOIN
句を追加して両方のテーブルを結合します。