Je veux rechercher dans dB premier identifiant unique pour les numéros de recherche de messagerie instantanée. Disons que je recherche des numéros: 721, 969, 337. Tous ces numéros ont au moins 3 entrées dans dB comme: donc je veux obtenir une carte d'identité (pourrait être le plus bas mais je ne peux pas 't-tête) pour chaque numéro 721 (1), 969 (4), 337 (8). Des idées, je pourrais utiliser des requêtes distinctes pour cela, mais j'espère qu'il y a une solution en utilisant un? P> p>
3 Réponses :
Si vous voulez juste que vous voulez juste l'identifiant minimum par numéro: si vous voulez l'enregistrement entier: p> ou, si vous Exécutez MySQL 8.0: P> SELECT id, number, name
FROM (
SELECT t.* ROW_NUMBER() OVER(PARTITON BY number ORDER by id) rn FROM mytable t
) x
WHERE rn = 1
Comment Query 1 fonctionnerait-il comme une requête SQL invalide dans les cas généraux .. Je suppose que cela devrait être groupe par numéro code> également un
où code> coutures à manquer de faire défaut le Numéros de recherche.
@RAYMONDNIJIJLAND: J'ai réparé la faute de frappe dans la première requête, merci de l'avoir repéré!
Pas de problème mais toujours un où numéro de numéro dans (721, 969, 337) code> serait nécessaire pour les requêtes si le Topicstarter a besoin de ces numéros Nombre que je suppose que les données réelles contenant non seulement ces
721, 969, 33 code> numéros
Vous pouvez essayer ci-dessous - en utilisant la sous-requête corrélée
Donc, je veux obtenir une carte d'identité (pourrait être le plus bas mais ça ne me dérange pas) pour chaque Numéro 721 (1), 969 (4), 337 (8). Des idées, je pourrais utiliser des requêtes distinctes Pour cela, mais j'espère qu'il y a une solution en utilisant un? p>
Soi (à gauche) Rejoignez sur la même table avec un filtre peut être l'approche la plus logique pratiquée, vous devez avoir toutes les colonnes ..
Plus ou moins comme les requêtes ci-dessous. p>Query (MIN ID) FORT> P>
**min** | number | id | | ------ | --- | | 337 | 8 | | 721 | 1 | | 969 | 4 | **max** | number | id | | ------ | --- | | 337 | 10 | | 721 | 3 | | 969 | 7 |
Si vous n'échouez pas quelle carte d'identité vous obtenez pourquoi avez-vous été balisé la question avec
plus grand-n-per-groupe code>? Aussi quoi dans les cas si vous recherchez un numéro qui n'existe pas dans la table si cela importe?