2013-04-08 4 views
0

Мне нужно добавить два условия из двух других таблиц в этот запрос, но я не знаю, как это сделать.комплекс sql query help wordpress

SELECT SQL_CALC_FOUND_ROWS * FROM wp_posts WHERE 1=1 AND ((
       SELECT COUNT(1) 
       FROM wp_term_relationships 
       WHERE term_taxonomy_id IN (2,3) 
       AND object_id = wp_posts.ID 
       ) = 2) AND wp_posts.post_type = 'packages' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10 

другие таблицы:

В таблице 1 (название: packages_dates) имеет три поля: post_id, date_from (дата), date_to (дата)

таблица 2 (название: packages_price) имеет два поля: post_id, цена (числовой)

условие являются:

я есть ввод даты и которые должны быть между date_from и date_to в

таблице 1

;

второй вход является диапазон цен, который должен включать в себя цену в

таблице 2

;

благодаря

ответ

0

Если ваша база данных позволяет внутренние соединения, то мне кажется, что это должно работать:

SELECT SQL_CALC_FOUND_ROWS * FROM wp_posts inner join packages_dates on wp_posts.ID=packages_dates.post_id inner join packages_price on wp_posts.ID=packages_price.post_id WHERE 1=1 AND ((
      SELECT COUNT(1) 
      FROM wp_term_relationships 
      WHERE term_taxonomy_id IN (2,3) 
      AND object_id = wp_posts.ID 
      ) = 2) AND wp_posts.post_type = 'packages' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') AND packages_dates.date_from >=DateInput and packages_dates.date_to<=DateInput and packages_price between InputLowRange and InputHighRange GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10