0
votes

Pourquoi la jointure intérieure produisant-elle plus d'enregistrements que le fichier d'origine?

J'ai deux tables. Tableau A & Table B. Tableau A comporte 40516 lignes et enregistre les ventes de Seller_id. La première colonne du tableau A est le vendeur_id qui répète chaque fois qu'une vente est effectuée.

Exemple: Tableau A (lignes 40516) p> xxx pré>

Le vendeur_id est également présent dans le tableau B et contient également le nom correspondant du vendeur. p>

Exemple: Tableau B (5851 lignes) P>

seller_name           | seller_id | item | cost
------------------------------------------------
Dog and Cat World INC |    1      | dog  | 5000
Dog and Cat World INC |    1      | cat  | 50
Reptile Love.com      |    4      |lizard| 80
Ocean Dogs Inc        |    5      |bird  | 20
Ocean Dogs Inc        |    5      |fish  | 90


7 commentaires

Table_B contient des enregistrements en double


1- Quel est le type unique_id dans vos tables? 2- Les lignes supplémentaires sont dupliquées?


Votre requête doit fonctionner si les tables et les données sont correctes. Peut-être montrer un échantillon des enregistrements "extra".


Raisons: (a) 40516 N'EST PAS le nombre correct de lignes de table A, (b) que le document n'est pas unique dans le tableau B.


Veuillez nous fournir exemple minimal, complet et vérifiable .


@Pliskin le caractère unique est un caractère variable. Je devais choisir cela en raison des chiffres ayant parfois des tirets en eux (c'est-à-dire 9-000768).


La colonne unique n'est pas unique, dans votre cas, c'est comme une clé étrangère.


3 Réponses :


2
votes

unique_id n'est déjà pas correctement nommé dans la première table, il n'y a donc aucune raison de supposer qu'il est unique dans la deuxième table non plus.

exécutez cette requête pour trouver les duplicats: xxx

Vous pouvez corriger la requête en utilisant distincte sur : xxx

dans ce cas, vous pouvez Obtenez moins d'enregistrements , s'il n'y a pas de correspondance. Pour résoudre ce problème, utilisez un rejoindre .


0 commentaires

0
votes

Parce que ID unique colonne est pas unique .


0 commentaires

0
votes

Gordon Linoff était correct. Le vendeur_id (anciennement répertorié comme unique_id) a été en effet dupliqué tout au long de l'ensemble de données. Je suppose stupidement autrement. Aussi le nom du vendeur avait aussi de nombreux duplicats! En fin de compte, j'ai dû utiliser la fonction Concat () pour rejoindre le vendeur_id avec un deuxième identifiant pour créer un type de clé étrangère. Après que je fasse cela, la jointure a travaillé comme prévu. Merci tout le monde!


0 commentaires