between для значения из другой таблицы

yas

Guest
between для значения из другой таблицы

PHP:
select * from products_properties as pr, products_prop_options_values as pv, products as p, products_to_categories as cat, products_description as pd where cat.products_id =p.products_id and pr.products_id=p.products_id and pr.options_id IN ("95", "93") and pr.options_values_id="31" and p.products_id=pd.products_id and cat.categories_id='11' and pv.products_options_values_id=pr.options_values_id and p.products_status = '1' group by p.products_id having count(distinct pr.options_id) = 2
Есть такой запрос

Нужно для options_id='72' выташить из таблицы pv значение параметра(products_options_values_name)
такое что pp.options_values_id=pv.products_attributes_id

И это значение(
pv.products_options_values_name)
Зделать:
BETWEEN '100' AND '200'

Помогите сделать такой запрос, очнеь надо

-~{}~ 17.10.05 10:19:

Народ очень надо помогите плиз
 

chira

Новичок
попробуй так
Код:
select * 
from products_properties as pr
  , products_prop_options_values as pv
  , products as p
  , products_to_categories as cat
  , products_description as pd
  INNER JOIN products_prop_options_values as pv2 
    ON pv2.products_options_values_id=pr.options_values_id
      AND pr.options_id='72' 
      AND pv2.products_options_values_name BETWEEN '100' AND '200'
where cat.products_id =p.products_id
  and pr.products_id=p.products_id
  and pr.options_id IN ("95", "93","72")
  and pr.options_values_id="31"
  and p.products_id=pd.products_id
  and cat.categories_id='11'
  and pv.products_options_values_id=pr.options_values_id
  and p.products_status = '1'
group by p.products_id having count(distinct pr.options_id) = 2
за 100% правильность не ручаюсь

-~{}~ 17.10.05 10:13:

возможно и так будет работать:
Код:
select * 
from products_properties as pr
  , products_prop_options_values as pv
  , products as p
  , products_to_categories as cat
  , products_description as pd
where cat.products_id =p.products_id
  and pr.products_id=p.products_id
  and (pr.options_id IN ("95", "93")
     OR (pr.options_id ='72' 
           AND pv.products_options_values_name BETWEEN '100' AND '200'))
  and pr.options_values_id="31"
  and p.products_id=pd.products_id
  and cat.categories_id='11'
  and pv.products_options_values_id=pr.options_values_id
  and p.products_status = '1'
group by p.products_id having count(distinct pr.options_id) = 2
 

yas

Guest
C первым и вторым запросом ничего не меняеться в количество найденных.... однако по весу не фильтруеться, вес и с 90 встречаеться....

Как быть?
 

chira

Новичок
не верится ...
dump базы большой?
есть возможность получить небольшой dump c данными?
 
Сверху