Opencart Mysql查询订购超过1次的客户

时间:2018-07-09 12:13:46

标签: php mysql

我正在使用Opencart 2.3.0.2正在创建客户销售模块。

在此模块中,我希望吸引订购不止一次的客户。

这是我使用过的查询

SELECT * FROM oc_order o LEFT JOIN oc_customer oc ON (o.customer_id = oc.customer_id) WHERE (SELECT * FROM oc_order WHERE customer_id=o.customer_id)

  

但是它显示#1241 - Operand should contain 1 column(s)错误

是否有任何查询让订购量超过一次的客户?

1 个答案:

答案 0 :(得分:0)

您没有查询条件。您可能要使用WHERE EXISTSdocs)。

  

如果子查询根本返回任何行,则EXISTS子查询为TRUE,并且   NOT EXISTS子查询为FALSE ...

SELECT 
    * 
FROM 
    oc_order o 
LEFT JOIN 
    oc_customer oc 
    ON (o.customer_id = oc.customer_id) 
WHERE EXISTS (
    SELECT 
        *
    FROM 
        oc_order 
    WHERE 
        customer_id=o.customer_id
)

但是,如果您要查找订单数量,则可能只希望查找订单数量超过1个的订单。

SELECT 
    * 
FROM 
    oc_order o 
LEFT JOIN 
    oc_customer oc 
    ON (o.customer_id = oc.customer_id) 
WHERE EXISTS (
    SELECT 
        COUNT(order_id) 
    FROM 
        oc_order 
    WHERE 
        customer_id=o.customer_id
    GROUP BY
        customer_id
    HAVING
        COUNT(order_id) > 1
)

我对模式不熟悉,我不确定order_id列应是什么。