0

販売された金額と日付で注文された製品のリストを取得しようとしています...リストに販売されていない製品も表示したいので、サブクエリを実行しようとしましたが、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')
4

1 に答える 1

0

AND演算子は両側に単一の値を期待しますが、次のようになります。

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

最初のオペランドの形式は であるため、 orX = Yとして評価されるブール値(またはフィールドが の場合) ですが、2 番目のオペランドはブール値ではありません。truefalseNULLNULL

これを機能させるには、の 2 番目のオペランドをAND単一値の式にする必要があります。

于 2013-12-04T22:22:46.840 に答える