У меня есть две таблицы базы данных, DeviceCatalogue и SkuDetails. DeviceCatalogue имеет отношение один ко многим со SkuDetails, поскольку skudetails - это массив. Проблема возникает, когда я фильтрую skudetails на основе цен.
для запросов к базе данных я использую следующий предикат в DeviceCatalogue:
"Any skudetails.priceWithVat >= 1 And Any skudetails.priceWithVat <= 2000"
это в основном возвращает мне все устройства в этом диапазоне. но проблема в том, что мне нужны только те skudetails, которые в основном под этим фильтром, но поскольку обратное отношение возвращает мне все skudetails с этим диапазоном.
Я также пытаюсь использовать подзапрос, но это все еще не решение.
Давайте рассмотрим пример проблемы.
IPhone6 <Devices>
- color -> Black , storage -> 64GB , Price 2000 <SkuDetail>
- color -> Black , storage -> 32GB , Price 1800 <SkuDetail>
- color -> White , storage -> 128GB , Price 2800 <SkuDetail>
Мне потребовались только черные 32 ГБ, так как они находятся под этим диапазоном, но я получаю все 3 из них. как я возвращаю устройства устройства.
Должен ли я изменить свой предикат на что-то другое, чтобы получить соответствующий результат, или я делаю что-то неправильно. или есть ошибка в общей архитектуре базы данных.