Mysql multi-table / multi-entity-related content query

0

У меня есть следующие таблицы:

  • magazine_tags
  • news_tags
  • page_tags
  • content_tags
  • faq_tags

Все они имеют точно такую ​​же структуру:

uid_local - id of the entity
uid_foreign - id of the tag

Каждый из них сопоставляется с моделью в PHP.

Мне нужно получить связанный контент на основе нескольких тегов. Скажем, я просматриваю "faq" с тегами 1 и 4, мне нужно получить все теги с отметкой 1 или 4, но те, отмеченные обоими, должны быть наверху.

Мне также нужно иметь возможность различать разные объекты, поэтому я могу загрузить их с помощью соответствующей модели в PHP после выполнения запроса.

Как я буду строить этот запрос?

Спасибо!

Теги:

1 ответ

1
Лучший ответ

Я не могу проверить это, потому что я мобилен, но следующее должно сделать трюк:

SELECT uid_local, uid_foreign, count (*) как частота FROM faq_tags WHERE uid_foreign IN (1,4) GROUP BY uid_local ORDER BY frequency DESC

  • 0
    Это на самом деле работает нормально, но есть ли способ расширить его, чтобы он работал на нескольких таблицах одновременно?
  • 0
    Вы можете попробовать присоединиться к ним или выбрать союз. PS: [en] когда вы едете в Бухарест, чтобы пойти выпить пива :) [/ en]
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню