MySQL / PHP: Encuentre artículos similares / relacionados por etiqueta / taxonomía

Tengo una mesa de ciudades que se parece a esto.

|id| Name    |
|1 | Paris   |
|2 | London  |
|3 | New York|

Tengo una tabla de etiquetas que se ve así.

|id| tag            |
|1 | Europe         |
|2 | North America  |   
|3 | River          |

y una tabla cities_tags:

|id| city_id | tag_id |
|1 | 1       | 1      | 
|2 | 1       | 3      | 
|3 | 2       | 1      |
|4 | 2       | 3      | 
|5 | 3       | 2      |     
|6 | 3       | 3      |

¿Cómo calculo cuáles son las ciudades más estrechamente relacionadas? Por ejemplo. Si estuviera mirando la ciudad 1 (París), los resultados deberían ser: Londres (2), Nueva York (3)

He encontrado elÍndice de Jaccard pero no estoy seguro de cuál es la mejor manera de implementar esto.

Respuestas a la pregunta(5)

Su respuesta a la pregunta