INNER JOIN DISTINCTES avec MySQL

J'ai un problème mysql. J'ai deux tables comme cela que j'ai besoin de vous joindre.

table:

id otherid2

1 | 1

2 | 1

3 | 2

4 | 2

table2:

otherid otherid2

1 | 1

2 | 1

3 | 2

4 | 2

Je suis en utilisant:

SELECT id,otherid FROM table INNER JOIN table2 ON table.otherid2=table2.otherid2

Cela me donne:

id otherid

1 | 1

1 | 2

2 | 1

2 | 2

3 | 3

3 | 4

4 | 3

4 | 4

Comme vous pouvez le voir j'ai retrouver avec des doublons d'id comme il est otherid2s qui n'est pas unique dans la table2. Ce dont j'ai besoin est de INNER JOIN DISTINCTES, d'une certaine façon, je veux seulement le résultat comme ci-dessous. Pas de doublons.

C'est ce que je veux:

id otherid

1 | 1

2 | 1

3 | 3

4 | 3

Puis-je faire cela dans une manière facile?

  • Qu'est-ce que votre base de décider à laquelle des lignes de la rejoindre à jeter? Pour par exemple? pour l'Id 4, il y avait 2 lignes avec otherid 3 et 4. Sur quelle base avez-u jetez ligne avec otherid 4 et sélectionnez la ligne avec otherid = 3?
  • Je ne vois pas comment vous obtenez 3/3 ou 4/3 à moins qu'il y a des valeurs ne s'affichent pas dans les deux premiers tableaux. Aussi, je ne vois pas comment vous obtenez 2/2 basé sur ce que vous présentez ici.
  • Essayez de jouer avec les sous-requêtes (voir dev.mysql.com/doc/refman/5.5/en/join.html). Pas très optimal, mais tout à fait efficace.
  • Je veux la ligne avec le plus bas de l'id dans la table2.
  • Noir - Mais qu'est ce que j'obtiens lorsque j'exécute la requête mysql. id est la clé primaire dans la table et otherid est la clé primaire dans la table2.
InformationsquelleAutor Martin | 2010-10-04