web-dev-qa-db-fra.com

Un moyen efficace de joindre deux tables avec une relation un à plusieurs

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

6
user3678399

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
6
Peter Elzinga

É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.

1
Max Vernon