2010-06-29 8 views
2

J'ai une table MySql ayant la structure suivante:MySql: lignes Groupe mes multiples colonnes et retourner le nombre

ontology_term 
pathway_id 
pathway_name 

Je veux écrire une requête à l'aide que nous pouvons obtenir correspondance entre différentes voies (ayant id unique de -> pathway_id) basé sur le nombre de termes d'ontologie communs.

Ainsi, la sortie doit être,

Pathway_id1, Pathway_id2, No. of common terms 

Je sais, il peut être facilement fait en utilisant un langage côté serveur, il sera plus rapide d'utiliser MySql à la place?

+0

Pouvez-vous fournir quelques exemples de données qui se rapportent à votre résultat attendu? –

Répondre

1

Si je vous comprends bien, qui est

select a.pathway_id, b.pathway_id, count(*) 
from t a 
inner join t b on a.ontology_term = b.ontology_term 
group by a.pathway_id, b.pathway_id 

Il n'y a pas d'enregistrement si deux voies n'ont pas des termes communs

+0

Merci, cela fonctionne. Cependant, j'ai ajouté une autre condition "AND a.pw_id! = B.pw_id" sinon elle va également regrouper chaque chemin par lui-même. – Chetan

Questions connexes