我试图通过销售量和日期获得产品订单列表...我还想显示未在列表中销售的产品,所以我尝试做一个子查询,但是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')
答案 0 :(得分:0)
AND
运算符要求任何一方都有一个值,但是你有这个:
WHERE product.product_subcategory_id = $subcategory_id
AND ( ... select that returns two columns)
第一个操作数的格式为X = Y
,因此如果字段为true
,则为布尔值,其评估为false
或NULL
(或NULL
),但第二个操作数不是布尔值。
要使其工作,您需要将AND
的第二个操作数转换为单值表达式。