J'ai table qui devrait se joindre à une autre table basée sur l'identifiant unique. Si je fais LEFT OUTER JOIN ON
, je vais avoir des doublons. Si je mets DISTINCT
dans mon SELECT
j'obtiendrai le nombre correct d'enregistrements. Ensuite, si j'inclus un champ de la table que j'ai fait LEFT OUTER JOIN
dans ce cas, je reçois à nouveau des doublons. Voici ma question:SQL Left Outer Join?
SELECT DISTINCT
Table1.fname,
Table1.lname,
Table2.address
FROM Table1
LEFT OUTER JOIN Table2
ON Table2.user_id = Table1.userid
Dans l'exemple ci-dessus, je reçois des doublons, j'ai aussi essayé de le faire:
LEFT OUTER JOIN (
SELECT user_id
FROM Table2
GROUP BY user_id
) AS t2 ON Table1.user_id = t2.user_id
Cela m'a donné bon nombre de dossiers, mais j'ai besoin des colonnes supplémentaires de cette deuxième table, après avoir inclus des colonnes supplémentaires, je suis en train de doublons à nouveau, par exemple:
LEFT OUTER JOIN (
SELECT user_id, address
FROM Table2
GROUP BY user_id, address
) AS t2 ON Table1.user_id = t2.user_id
Je me demande si je raté quelque chose ou il y a une meilleure façon de gérer ce type de problème. Si quelqu'un voit quelque chose ou connaît mieux la solution s'il vous plaît faites le moi savoir.
Quelle est la clé primaire pour le tableau 2? –
Vous obtenez des doublons de DISTINCT avec ces colonnes supplémentaires, car ils ont plusieurs valeurs. Nous ne pouvons pas vous dire comment le réparer, à moins que vous ne puissiez nous dire * lesquelles * de ces valeurs multiples que vous voulez de ces colonnes. – RBarryYoung
Peut-on voir des données? – coderredoc