la sélection d'Id en double dans mysql
J'ai une table très très simple qui est juste part_id et part_type:
CREATE TABLE `temp` (
`part_id` INT NOT NULL ,
`part_type` CHAR( 5 ) NOT NULL
Cela a une longue liste d'une partie des id ou des types. Toutefois, certaines régions ont plus d'un type. Comment puis-je obtenir les Id de juste les parties qui ont plus d'un type? Je pensais à quelque chose de ce genre:
SELECT * FROM temp WHERE part_in IN (SELECT count(part_id) as duplicates FROM temp WHERE 1 GROUP BY part_id) AND duplicates > 1
cependant, c'est clairement juste psuedocode et échoue. Merci pour votre aide.
OriginalL'auteur julio | 2011-06-02
Vous devez vous connecter pour publier un commentaire.
Cela vous donnera la part_id est avec plus d'une ligne. Vous pouvez enrouler ensuite que, comme votre exemple de requête pour obtenir toutes les part_id/part_type de données pour toutes les parties avec plus d'une ligne.
en plus: si vous êtes également intéressé par le comte de la valeur (c'est presque gratuit pour les db) vous pouvez modifier le sélectionner pour les opérations suivantes: sélectionnez part_id, count(*) comme mycount de temp ...
OriginalL'auteur Fosco
J'aime
GROUP_CONCAT
pour ce genre de choses, car il vous donne la réponse à cette question (combien) et la question suivante (les types).Qu'est-ce que
GROUP BY 1
?"groupe 1" est un raccourci pour le premier champ, de manière identique à "groupe par part_type" dans ce cas.
OriginalL'auteur Alain Collins
utiliser AVOIR
http://www.techonthenet.com/sql/having.php
OriginalL'auteur red eyes dev