Сокращение количества запросов при выборе нескольких таблиц - PullRequest
0 голосов
/ 02 мая 2020

Цель: Отображение нескольких тегов для каждой строки (как в примере, показанном ниже для stackoverflow)

Подробности: Каждая строка является результатом запроса из таблицы ' news ' (запрос 1 ниже). Затем я вызываю второй запрос из таблицы ' tags ' (запрос 2 ниже).

Запросы:

  1. Запрос на выбор новостей:

    SELECT * FROM news

  2. Запрос на поиск тегов - в PHP foreach statemnt :

    SELECT DISTINCT t.* FROM tags INNER JOIN joiner j ON j.news_id = t.tag_id INNER JOIN news n ON n.news_id = j.news_id WHERE n.news_id = XXXXXXX

XXXXXX является текущим идентификатором новостей при зацикливании в PHP, и это проблема

Вопрос:

  1. Если я показываю 10 новостей статей, это приводит к 1 запросу для получения новостей и 10 запросов чтобы получить теги. Есть ли лучший способ обработки отображения 200 новостей на странице ?

  2. Для пользователей CodeIgniter: есть ли упрощенный метод, который будет использоваться в построителе БД?

enter image description here

Примечание: Пожалуйста, прокомментируйте, если что-то нужно доработать.

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

На вопрос был дан ответ в комментариях под вопросом.

0 голосов
/ 02 мая 2020

Вот пример запроса ...

SELECT c.olumns
     , y.ou
     , a.ctually
     , w.ant
  FROM news c
  JOIN joiner y
    ON y.news_id = c.news_id
  JOIN tags a
    ON a.tag_id = y.tag_id

Отказ от ответственности: Я НЕ программист

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...