@Anrek

Как сформировать запрос к базе данных?

Таблица состоит из id объекта и id свойства.
Нужно вытащить строки с объектами, имеющие свойства, заданные пользователем при поиске.

Пример: вытащить объекты, которые имеют свойства 1 и 4 (результат запроса должен достать шесть строк - выделены на рисунке зеленым)
61aa567bdaa65279466016.jpeg

Проблема в том, что число свойств может быть разное (до 15 штук). Нужен универсальный скрипт. Как быть?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Можно так:
with objects as (
  select idObject
  from tbl
  where idProperty in (1,4)
  group by idObject
  having  count(distinct idProperty) = 2
) 
select * from tbl join objects using(idObject);


PostgreSQL CTE fiddle
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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