C'est une question d'entrevue qui m'a été posée en entrevue et je n'ai pas pu répondre. S'il vous plaît aider ..
Quelle est la façon la plus efficace de joindre deux tables avec une relation un à plusieurs entre elles
Le moyen le plus efficace consiste à utiliser un INNER JOIN, comme ceci:
SELECT *
FROM Parent P
INNER JOIN Child C
ON C.ParentId = P.ParentId
Et lorsque vous avez besoin d'agrégats au niveau enfant, vous pouvez ajouter un GROUP BY et SUM et/ou AVG ou d'autres fonctions d'agrégation:
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
Étant donné que la question indique explicitement "avec une relation un-à-plusieurs", ils vous demandent peut-être d'expliquer les relations de clé primaire et de clé étrangère.
Dans ce cas, vous pourriez dire:
Le tableau du côté "un" de la relation "un-à-plusieurs" doit avoir une colonne de clé primaire. L'autre table doit avoir une clé étrangère définie pointant vers la clé primaire sur la première table. Pour renvoyer les résultats des deux tableaux, vous devez ajouter un
INNER JOIN
clause pour joindre les deux tables.