| one | two |
-------------
| A | 1 |
| A | 2 |
| B | 1 |
| B | 3 |
| C | 1 |
| C | 4 |
Je voudrais obtenir aucune répétition dans une colonne dans une requête, de sorte que la norme SELECT DISTINCT one,two FROM table;
ou SELECT * FROM table GROUP BY one,two;
ne fonctionne pas tout à fait, parce qu'il cherche distincte dans toutes les lignes, ce qui ce cas renverrait toutes les 6 lignes.plusieurs colonnes distinctes dans une base MySQL
Idéalement, je cherche:
| one | two |
-------------
| A | 1 |
| B | 3 |
| C | 4 |
En PHP (etc.), je voudrais juste faire avec un tableau pour chaque colonne, et le cas échéant la colonne a été utilisée puis passez la ligne. Cependant, je ne suis pas sûr de savoir comment l'implémenter dans MySQL.
SELECT * FROM (SELECT * FROM table GROUP BY one) GROUP BY two
- fonctionne presque. mais parce que la requête externe ne voit pas toutes les alternatives, elle va manquer des options valides, à savoir que l'intérieur s'effondrera à A, B, C mais pourrait bien choisir tous les 1s pour la colonne deux, ce qui signifierait que le second GROUP BY alors réduisez-le propre à 1 rangée!
Je sais que l'ordre de la vérification de la duplication aura un effet sur les lignes exactes renvoyées - ne vous inquiétez pas à ce sujet - je veux juste une bonne section de lignes avec des lignes similaires minimales.
Expliquez votre règle de requête. S'il y a 2 lignes avec le même champ 'one', lequel voulez-vous avoir dans la sortie? –
Dans votre exemple, vous avez sélectionné 'A-1', qui est le premier correspondant, mais dans les deux autres, vous avez choisi les secondes correspondances. Pouvez-vous solidifier votre choix à l'un ou à l'autre? –
En plus de la question de Clément - que se passe-t-il si 'C' dans la première colonne n'apparaît qu'avec les valeurs de la colonne deux qui ont déjà eu lieu avec 'A' et 'B'? – quosoo