@danilovevgen
веб разработчик

Как сделать выборку с несколькими значениями в одной ячейке?

Есть список товаров с определенными ID и есть список магазинов также со своими ID. В каждом магазине может быть несколько товаров, например в магазине с айди 1 есть товары ID - 1,2,3,4. Как можно сделать выборку товаров если выбирать товары у которых несколько значений id магазина к которому они пренадлежат. Потому что делать отдельную таблицу с содержимым - товар 1 - магазин 2, товар 1 - магазин 3, товар 2 - магазин 4 - это получается огромное количество данных если таких товаров 40, а магазинов 100 допустим и для каждого такого товара и для каждого магазина надо сделать свой запрос чтобы понять есть между ними связь или нет.
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега MySQL
Перво-наперво, я советую подучить русский язык, так как подобный поток сознания очень сложно прочитать.

По делу. Предлагаю рассмотреть для начала простую реализацию из opencrart'а.
Таблица product:
- id
- name
- ...

Таблица store:
- id
- name
- ...

Таблица product_to_store:
- product_id
- store_id

Запрос для выборки всех данных о продуктов с названиями магазинов, в которых они есть:
SELECT 
    product.*,
    GROUP_CONCAT(store.`name`) AS 'stores'
FROM 
    `product` 
    JOIN `product_to_store` ON product_to_store.`product_id`=product.`id`
    JOIN `store` ON store.`id`=product_to_store.`store_id`
Ответ написан
Ваш ответ на вопрос

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

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