Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Пересечение таблиц

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Ammiak
Отправлено: 06 Декабря, 2014 - 18:20:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 232
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




возник такой вопрос, есть запрос на объединение данных из нескольких таблиц, сейчас появилась необходимость переделать его на "пересечение" данных
Вот сам запрос:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT DISTINCT * FROM (
  3. (SELECT DISTINCT `b_iblock_element_property`.`IBLOCK_ELEMENT_ID`, `b_iblock_element_property`.`VALUE`,
  4. `b_iblock_element`.`NAME`, b_iblock_element_property.IBLOCK_PROPERTY_ID, `b_iblock_element`.`IBLOCK_SECTION_ID`
  5. FROM `b_iblock_element_property`, `b_iblock_element`
  6. WHERE b_iblock_element_property.IBLOCK_PROPERTY_ID = 11
  7. AND b_iblock_element_property.VALUE BETWEEN 1119 AND 2544
  8. AND `b_iblock_element`.`IBLOCK_SECTION_ID` = 10
  9. AND `b_iblock_element_property`.`IBLOCK_ELEMENT_ID`=`b_iblock_element`.`ID`)
  10. UNION
  11. (SELECT DISTINCT `b_iblock_element_property`.`IBLOCK_ELEMENT_ID`, `b_iblock_element_property`.`VALUE`,
  12. `b_iblock_element`.`NAME`, b_iblock_element_property.IBLOCK_PROPERTY_ID, `b_iblock_element`.`IBLOCK_SECTION_ID`
  13. FROM `b_iblock_element_property`, `b_iblock_element`
  14. WHERE b_iblock_element_property.IBLOCK_PROPERTY_ID = 15
  15. AND b_iblock_element_property.VALUE IN(3,4)
  16. AND `b_iblock_element`.`IBLOCK_SECTION_ID` = 10
  17. AND `b_iblock_element_property`.`IBLOCK_ELEMENT_ID`=`b_iblock_element`.`ID`)
  18. )) AS t1 GROUP BY t1.`IBLOCK_ELEMENT_ID`
  19.  

Вообщем, проблема в том что не получается сделать выборку только тех записей, которые удовлетворяют обоим условиям:
значение свойства (PROPERTY_ID = 11) - BETWEEN 1119 AND 2544
И
значение свойства (PROPERTY_ID = 15) - VALUE IN(3,4).
Подскажите пожалуйста, как можно сделать такую выборку?
Пытался копать в сторону многотабличных LEFT JOIN, но применительно к этому случаю пока написать запрос не смог

(Отредактировано автором: 06 Декабря, 2014 - 18:21:23)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB