Mysql
 sql >> Base de données >  >> RDS >> Mysql

Grouper par X ou Y ?

Vous ne pouvez pas faire cela facilement dans MySQL .

Le problème est que la relation "est similaire à" telle que vous la définissez n'est pas transitive. Dans votre exemple, Smith Inc est similaire à John Smith (par SSN ) et John Smith est similaire à Jane Smith (par nom), mais Smith Inc n'est pas similaire à Jane Smith . Il n'y a donc pas de valeur unique avec laquelle tous les enregistrements pourraient être comparés et GROUP BY n'aidera pas ici.

Dans d'autres systèmes qui prennent en charge la récursivité, vous pouvez créer une fermeture transitive de cette relation qui permettrait le regroupement, mais ce n'est pas une tâche facile dans MySQL .