У меня есть 3 таблицы: person_tag (person_id, тег), Interest_tag (Interest_id, тег), skill_tag (skill_id, тег).Как бы я ни хотел иметь одну таблицу тегов для интереса и навыков, мне нужно держать их отдельно.Ниже приведены примеры данных:
+-----------+-------------+
| person_id | tag |
+-----------+-------------+
| 1 | x |
| 1 | y |
| 1 | z |
+-----------+-------------+
+-------------+-------------+
| interest_id | tag |
+-------------+-------------+
| 10 | x |
| 20 | y |
| 20 | z |
+-------------+-------------+
+-------------+-------------+
| skill_id | tag |
+-------------+-------------+
| 100 | x |
| 100 | y |
| 100 | z |
| 900 | a |
+-------------+-------------+
Я хотел бы написать запрос, который вернул бы результат, подобный следующему, с точки зрения релевантности для данного person_id (например, 1).Обратите внимание, что «a» не появляется в результатах ниже:
+-------------+-------------+-------------+
| id | typ | score |
+-------------+-------------+-------------+
| 100 | skill | 3 |
| 20 | interest | 2 |
| 10 | interest | 1 |
+-------------+-------------+-------------+
Я подозреваю, что UNION будет моим другом здесь, но не совсем уверен, как написать запрос.У кого-нибудь есть предложение?