@pwnz2

Трехтабличный SQL-запрос: извлечение товара и соответстующих ему тэгов, как реализовать так фильтр с помощью SQL запроса?

Есть три таблицы базы данных по которым нужно составить фильтр.

1) таблица tag (id_tag, tag) в котором есть все теги вместе (в кучку)
hjqEp.png

2) tag_post (id_t_p, id_tag, id_post, num_tag_inpost)
rBWdF.png

3) post (id_post, post)
IcTly.png

Пример: если хотим вынуть один товар с этих таблиц нужно взять с таблицы tag_post c 1 до 8 например для id_post поста 5 вынуть все айдишники id_tag и с таблицы tag вынуть по этим айдишника теги то получиться один товар типа 1) артикул 2) Вид изделия 3)Материал 4) Основная вставка 5) Производитель нам важно только айдишники до 5
9JZQM.png
Делаю фильтр на php. И очень затрудняюсь с составлением SQL запроса( Аналогичный вопрос в котором хотел вынуть товары с БД. Потом решил добавить в БД нумерацию с 1 до сколько то там повторяющихся цифр чтобы запрос был простым.
SELECT
  p.post AS post
FROM
  post AS p
JOIN
  tag_post AS tp
ON
  p.id_post = tp.id_post
WHERE
  tp.id_tag IN(1, 2, 3, 4, 5)
GROUP BY
  p.id_post

Сформировал такой запрос который выводит все товары по id отправленному по $_GET. Далее вопрос как отфильтровать чтобы товары вывелись по категориям? типа выбрал: вид изделия и артикул и вывелись все товары у которых совпадают эти 2 параметра. Решение можно на PHP.
Нужно сделать запрос который фильтрует по категориям.
  • Вопрос задан
  • 372 просмотра
Пригласить эксперта
Ответы на вопрос 1
@seriogja
Здравствуйте!
Самым лучшим вариантом будет не делать так, как вы делаете. Не нужно делать кашу из тегов/производителей/категорий/типов. Делаете таблицу product - она содержит инфу о товаре. Таблица manufacturer - инфу о производителе. Category - о категориях и т.д. А между собой у них связи должны быть по id.
Ответ написан
Ваш ответ на вопрос

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

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