powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по нестандартной выборке
2 сообщений из 2, страница 1 из 1
Вопрос по нестандартной выборке
    #39214688
caxopog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет

У меня есть таблица товаров item с ключом itemid
Есть таблица свойств товара property с ключом propertyid
И есть связующая таблица item_property с полями itemid,propertyid,value, где value - значение данного свойства для данного товара.

У разных категорий товаров может быть разное количество свойств (например, у колец это тип металла и диаметр кольца, а у камней это вес в каратах)

Когда посетитель смотрит определённую категорию товаров, у него появляется фильтр по свойствам товаров этой категории (например, если он смотрит кольца, у него появляется фильтр типов металла и диаметров)

И мне нужно сделать запрос, реализующий эти фильтры.
Например, выбрать все кольца у которых тип металла "Золото" и диаметр "10".

Я сделал
SELECT * FROM item i LEFT JOIN item_property p ON i.itemid=p.itemid ...
А вот дальше не знаю что писать - ведь пользователь может указать несколько свойств одновременно и нужно как то проверить, чтобы в связующей таблице были все указанные свойства и чтобы они были равны указанным.

Что тут можно сделать? Или мне переделывать всю структуру хранения свойств чтобы было попроще их получать?
У меня пока в голове только джойнить каждое свойство отдельно и проверять (т.е. если 3 свойства, то 3 раза джойнить item_property), но это как то тяжело для базы будет, наверное.

Заранее спасибо.
...
Рейтинг: 0 / 0
Вопрос по нестандартной выборке
    #39214916
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
where (propertyid,value) in ((propertyid1,value1),(propertyid2,value2),...)
group by item
having count([distinct] propertyid = ...)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по нестандартной выборке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]