我必须从其他两个表添加两个条件到此查询,但我不知道如何做到这一点。
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 (name:packages_dates)有三个字段:post_id date_from(日期),date_to(日期)
表2 (name:packages_price)有两个字段:post_id,price(numeric)
的条件是:
我有一个日期输入,必须介于
中的date_from和date_to之间表1
;
第二个输入是一个price范围,必须在
中包含price表2
;
谢谢
如果您的数据库允许内部连接,那么在我看来应该这样工作:
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