dzheka3d
@dzheka3d

Как в mysql вытащить статью?

Например, нужно вытащить урок и теги к нему. Я делаю так:
$res = $db->query('SELECT * FROM `news` WHERE `id` = 5');
$row = $res->fetch_assoc();
//выполняю с ним какие-то операции

// И дальше делаю еще один запрос, чтобы вытащить теги

$res = $db->query('SELECT * FROM `tags` WHERE `news_id` = 5');
$row = $res->fetch_assoc();

// И тут работаю с тегами


Вопрос в том, правильно ли это, ведь если урок содержит кроме тегов еще полезные советы, список картинок, комментарии, этапы выполнения и сохранивших урок в избранное пользователей, то получается кроме этих двух запросов будет еще куча вясяких. Стоит пытаться как-то объеденять получение этих результатов в один запрос или у меня паранойя?
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 2
Kolyagrozamorey
@Kolyagrozamorey
инженер-электроник службы ИТ ХАЕС
Мне кажется что все это объединить в одну таблицу или в крайнем случаи в две. Зачем все то что относится к одной новости разносить по таблицам?
Ответ написан
@Wol_fi
php, js, mysql, highload
Попробуйте JOIN.
Например так:
SELECT * FROM `news` LEFT JOIN `tags`  
ON `tags`.`news_id` = `news`.`id` 
 WHERE `news`.`id` = 5

И по такому же принципу можно набирать другие таблицы.
Такой подход уменьшит кол-во запросов, но это не значит, что так делать лучше.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы