У меня есть три таблицы: bookmarks
, tag
и tagging
.tagging
- таблица ассоциаций для привязки тегов к закладкам.Я хотел бы выбрать связанные теги.Для выполнения текущего запроса требуются годы, но я не мог обернуть голову вокруг JOIN, которые могли бы заменить подзапрос, который выбирает все связанные закладки, помеченные определенными идентификаторами тегов.EXPLAIN
этого запроса:
1 PRIMARY ta index PRIMARY PRIMARY 8 NULL 3
1 PRIMARY t2 ref tag_id_idx tag_id_idx 8 blinkz.ta.id 89 Using where
2 DEPENDENT SUBQUERY t1 index tag_id_idx bookmark_id_idx 8 NULL 71 Using where
У меня есть индекс для полей bookmark_id
и tag_id
в таблице tagging
.Таблица tag
имеет первичный ключ с именем id
Как можно оптимизировать этот запрос, предпочтительно с помощью JOIN вместо подзапроса?