复杂的sql查询辅助wordpress

Posted

技术标签:

【中文标题】复杂的sql查询辅助wordpress【英文标题】:complex sql query assistance wordpress 【发布时间】:2013-04-08 11:05:45 【问题描述】:

我必须将其他两个表中的两个条件添加到此查询中,但我不知道该怎么做。

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),date_to(date)

表 2 (name:packages_price) 有两个字段:post_id,price(numeric)

条件是:

我有一个日期输入,它必须在 date_from 和 date_to 之间

表 1

;

第二个输入是一个价格范围,必须在

中包含价格

表 2

;

谢谢

【问题讨论】:

【参考方案1】:

如果您的数据库允许内部连接,那么在我看来这应该可以工作:

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

【讨论】:

以上是关于复杂的sql查询辅助wordpress的主要内容,如果未能解决你的问题,请参考以下文章

SQL alwayson 辅助接点查询统计信息“丢失”导致查询失败

当信息存储在辅助表中时,如何在 SQL 中查询页面的最新版本?

结合真实的测试实例,记录一次SQL语句辅助功能测试的场景(包含多表联查及子查询)

SQL之复杂查询与视图

在 Wordpress Sql Query 中解析结果

SQL,数字辅助表