我正在使用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)
错误
是否有任何查询让订购量超过一次的客户?
答案 0 :(得分:0)
您没有查询条件。您可能要使用WHERE EXISTS
(docs)。
如果子查询根本返回任何行,则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列应是什么。