= true and exists (
select * from "kokoc_artdevivre_offers" where "kokoc_artdevivre_products"."id" = "kokoc_artdevivre_offers"."product_id"
and (("length_sm" = 60 and "width_sm" = 120)
or ("length_sm" between 60 and 70 and "width_sm" between 110 and 140)))
order by "kokoc_artdevivre_products"."sort_order" asc
Должен вернуть 20 записей, но отдает только 18
Почему-то записи возвращаются с этого условия ("length_sm" between 60 and 70 and "width_sm" between 110 and 140) а условие ("length_sm" = 60 and "width_sm" = 120) игнорирует, в чем может быть причина?
второе условие уже включает в себя первое. Between инклюзивный оператор
Значит запрос правильно построен?
семантически верно, по смыслу - только вам знать
Мне надо, чтобы записи и из первого условия были в выборке и из второго условия
Второе условие перекрывает первое. Between это синтаксический сахар для value >= low and value <= high
А как сделать чтобы не перекрывало?
наверное, переписать :)ф
Не совсем пойму, каким образом проставить условия, чтобы такого не было
Второе условие не перекрывало первое, а чтобы выводились записи и с первого условия и со сторого
у вас первое условие это частный случай второго. Хотите разные условия - перепишите значения в первом условии
Обсуждают сегодня