Как взять данные из таблицы с названием, которое хранится в поле другой таблицы?

Всем привет!
Пытаюсь сделать закладки на сайте. Добавлять можно комментарии, новости, пользователей. Поэтому получается такая таблица:
8d83c1cefe48464f9926840c7af61118.jpgmode - название таблицы с (комментариями, новостями, пользователями)
mode_id - id записи с таблице mode

Вопрос: как связать эти две таблицы при выборке:
SELECT f.`mode`, f.`mode_id`, f.`user_id` 
FROM favorites f 
LEFT JOIN ????????? m ON f.`mode_id` = m.`id`
WHERE f.`user_id` = {$user_id}

PS Может не правильно как-то задумал структуру? Поправьте плз
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
@saltydogd
Как-то нетрадиционно неправильно хранить название таблиц в таблице, ибо все это и так лежит в системных таблицах, по разному у каждой СУБД. Вы во главу поставили закладки, а надо просто разбросать и нормализовать пары сущность-таблица и делать запрос с джойном по ID - вы это и так делаете. Вы не можете часом унифицировать (неизвестно что вы храните в каждой из новостей/комментариев/юзеров, но если это просто аннотация с урлом, то это будет решением) закладки в единую таблицу, с полем тип, который вынесен в отдельную таблицу? Потом выбор сущности по типу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы