如何在sql表中获取术语


How to get terms within sql table

我正在尝试使用Wooccommerce运行一些自定义报告,我已经完美地运行了。目前,报告将向您显示所有标记为"已完成"的订单的结果,但我想知道如何修改下面的代码,以便不仅从已完成的订单中提取结果,还从所有订单类型(如"已完成的"、"已取消的"、"失败的"answers"正在处理的")中提取结果?目前,下面的代码只会从标记为已完成的订单中提取我的结果,如此行所示:AND term.slug IN ('completed')。但是我该如何从上面的所有订单类型中提取,我可以用逗号分隔吗,比如"已完成"、"正在处理"、"已取消"、"失败"?有人能提供一个例子和解释,让我理解这一点,以供将来参考吗?

$sql = "SELECT *,
                count(*) AS 'sale_total'
                FROM {$wpdb->prefix}woocommerce_order_items AS order_items
                LEFT JOIN {$wpdb->postmeta} AS country
                    ON order_items.order_id = country.post_id
                LEFT JOIN {$wpdb->posts} AS posts
                    ON order_items.order_id = posts.ID
                LEFT JOIN {$wpdb->term_relationships} AS rel ON posts.ID = rel.object_ID
                LEFT JOIN {$wpdb->term_taxonomy} AS tax USING( term_taxonomy_id )
                LEFT JOIN {$wpdb->terms} AS term USING( term_id )
                WHERE posts.post_type             = 'shop_order' 
                AND   posts.post_status           = 'publish'

                AND   country.meta_key            = 'reason_for_purchase'
                AND   term.slug IN ('completed')
                AND   post_date > '" . date('Y-m-d', $start_date ) . "'
                AND   post_date < '" . date('Y-m-d', strtotime('+1 day', $end_date ) ) . "'
                GROUP BY country.meta_value";

感谢

只需将其他状态添加到查询中即可:term.slug IN ('completed'):

替换为:

term.slug IN ('completed','canceled','failed','processing')