MYSQL:操作数应包含1列

时间:2013-12-04 22:19:10

标签: mysql subquery mysql-error-1241

我试图通过销售量和日期获得产品订单列表...我还想显示未在列表中销售的产品,所以我尝试做一个子查询,但是MYSQL给了我这样的信息:

操作数应包含1列

这是我使用的查询:

SELECT product.product_id, product.product_brand_id, product.product_model_id, product.product_subcategory_id, product.product_retail_price, product.product_wholesale_price
FROM product
WHERE product.product_subcategory_id = $subcategory_id 
AND (SELECT SUM(product_sold.product_quantity) AS product_quantity_sold, SUM(product_sold.product_total_price) AS total_price_sold 
 FROM product
 INNER JOIN product_sold 
  ON product.product_id = product_sold.product_id
 INNER JOIN sales 
  ON sales.sales_id = product_sold.product_sales_id WHERE sales.sales_approved = '1' AND sales.sales_approved_time > '$start_timestamp' AND sales.sales_approved_time < '$end_timestamp')

1 个答案:

答案 0 :(得分:0)

AND运算符要求任何一方都有一个值,但是你有这个:

WHERE product.product_subcategory_id = $subcategory_id 
AND ( ... select that returns two columns)

第一个操作数的格式为X = Y,因此如果字段为true,则为布尔值,其评估为falseNULL(或NULL ),但第二个操作数不是布尔值。

要使其工作,您需要将AND的第二个操作数转换为单值表达式。