MySQL / PHP: Поиск похожих / связанных элементов по тегу / таксономии

У меня есть таблица городов, которая выглядит следующим образом.

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

У меня есть таблица тегов, которая выглядит следующим образом.

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

и таблица towns_tags:

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

Как рассчитать, какой из городов является наиболее близким? Например. Если бы я смотрел на город 1 (Париж), результаты должны быть: Лондон (2), Нью-Йорк (3)

Я нашелЖаккардовый указатель но я не уверен, как лучше всего это реализовать.

Ответы на вопрос(5)

Ваш ответ на вопрос