Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL内部查询WHERE子句访问外部查询表_Mysql_Wordpress_Woocommerce - Fatal编程技术网

Mysql SQL内部查询WHERE子句访问外部查询表

Mysql SQL内部查询WHERE子句访问外部查询表,mysql,wordpress,woocommerce,Mysql,Wordpress,Woocommerce,早上好- 这是我在这里的第一篇文章,在多年使用SO作为非常有用的资源之后 我遇到了一个复杂的(对我来说)查询问题,我正在为运行woocommerce处理订单的wordpress网站进行查询。我试图在订单列表中添加一个过滤器,用于过滤包含特定产品类别中的产品的订单 恐怕我已经被这个查询弄糊涂了,它在内部查询中连接了各种元表,以便获得确定产品类别所需的信息 问题是,我无法让作用域规则发挥作用,以便在内部查询中访问所需的外部表信息 查询是: SELECT SQL_CALC_FOUND_ROWS

早上好-

这是我在这里的第一篇文章,在多年使用SO作为非常有用的资源之后

我遇到了一个复杂的(对我来说)查询问题,我正在为运行woocommerce处理订单的wordpress网站进行查询。我试图在订单列表中添加一个过滤器,用于过滤包含特定产品类别中的产品的订单

恐怕我已经被这个查询弄糊涂了,它在内部查询中连接了各种元表,以便获得确定产品类别所需的信息

问题是,我无法让作用域规则发挥作用,以便在内部查询中访问所需的外部表信息

查询是:

    SELECT SQL_CALC_FOUND_ROWS
        wp_ot6q6i_posts.ID
    FROM
        wp_ot6q6i_posts
    WHERE
        1 = 1 AND YEAR(wp_ot6q6i_posts.post_date) = 2015 AND MONTH(wp_ot6q6i_posts.post_date) = 12 AND wp_ot6q6i_posts.post_type = 'shop_order' AND(
            (
                wp_ot6q6i_posts.post_status = 'wc-pending' OR wp_ot6q6i_posts.post_status = 'wc-processing' OR wp_ot6q6i_posts.post_status = 'wc-on-hold' OR wp_ot6q6i_posts.post_status = 'wc-completed' OR wp_ot6q6i_posts.post_status = 'wc-cancelled' OR wp_ot6q6i_posts.post_status = 'wc-refunded' OR wp_ot6q6i_posts.post_status = 'wc-failed'
            )
        ) AND EXISTS(
        SELECT
            t2.PROD_ID
        FROM
            (
            SELECT
                wp_ot6q6i_woocommerce_order_itemmeta.meta_value AS PROD_ID
            FROM
                wp_ot6q6i_woocommerce_order_items
            LEFT JOIN
                wp_ot6q6i_woocommerce_order_itemmeta
            ON
                wp_ot6q6i_woocommerce_order_itemmeta.order_item_id = wp_ot6q6i_woocommerce_order_items.order_item_id
            WHERE
                wp_ot6q6i_woocommerce_order_items.order_item_type = 'line_item' AND wp_ot6q6i_woocommerce_order_itemmeta.meta_key = '_product_id' AND wp_ot6q6i_posts.ID = wp_ot6q6i_woocommerce_order_items.order_id
        ) t1
    INNER JOIN
        (
        SELECT DISTINCT
            wposts.ID AS PROD_ID
        FROM
            wp_ot6q6i_posts wposts
        LEFT JOIN
            wp_ot6q6i_postmeta wpostmeta
        ON
            wposts.ID = wpostmeta.post_id
        LEFT JOIN
            wp_ot6q6i_term_relationships
        ON
            (
                wposts.ID = wp_ot6q6i_term_relationships.object_id
            )
        LEFT JOIN
            wp_ot6q6i_term_taxonomy
        ON
            (
                wp_ot6q6i_term_relationships.term_taxonomy_id = wp_ot6q6i_term_taxonomy.term_taxonomy_id
            )
        WHERE
            wp_ot6q6i_term_taxonomy.taxonomy = 'product_cat' AND wp_ot6q6i_term_taxonomy.term_id IN(
            SELECT
                term_id
            FROM
                `wp_ot6q6i_terms`
            WHERE
                slug = 'preorder'
        )
    ORDER BY
        wpostmeta.meta_value
    ) t2
    ON
        t1.PROD_ID = t2.PROD_ID
    )
    ORDER BY
        wp_ot6q6i_posts.post_date
    DESC
    LIMIT 0, 20
我得到的错误是:


1054-where子句中的未知列“wp_ot6q6i_posts.ID”

谢谢大家的帮助。我最终选择了另一个方向来解决这个问题,作为一个开发人员,我更熟悉这个问题。我从上一个连接中提取固定的项列表,并在代码中构建一个查询,在where子句中有一系列更简单的查询,从而避免了整个Exists方法


再次感谢您的帮助。

谢谢大家的帮助。我最终选择了另一个方向来解决这个问题,作为一个开发人员,我更熟悉这个问题。我从上一个连接中提取固定的项列表,并在代码中构建一个查询,在where子句中有一系列更简单的查询,从而避免了整个Exists方法


再次感谢您的帮助。

请查看wp_ot6q6i_帖子的表格模式?@DaniloBustos-谢谢您的帮助。该错误实际上来自定义WPost之前的上一个
SELECT
。\n只是为了澄清一下,
WHERE
需要在最外层的
wp_ot6q6i_posts.ID
-对应于订单号。@GurV-一个字:表别名(ok,两个字)请参阅wp_ot6q6i_帖子的表格模式?@DaniloBustos-谢谢您的帮助。该错误实际上来自定义WPOST之前的上一个
SELECT
,只是为了澄清一下,
WHERE
需要在最外层的
wp_ot6q6i_posts.ID
-对应于订单号。@GurV-一个字:表别名(ok,两个字),请参阅