Fatal error: Uncaught exception 'Exception' with message 'Error: Subquery returns more than 1 row<br />Error No: 1242 in opencart

Fatal error: Uncaught exception 'Exception' with message 'Error: Subquery returns more than 1 row<br />Error No: 1242 in opencart

致命错误:未捕获异常 'Exception' 消息 'Error: Subquery returns more than 1 row
Error No: 1242
SELECT o.order_id, CONCAT(o.firstname, ' ',o.lastname) AS 客户,(SELECT os.name FROM ocny_order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1') AS order_status,(SELECT os.name FROM ocny_order_product os WHERE os.order_id = o.order_id) AS name, o.shipping_code, o.total, o.currency_code, o.currency_value,telephone AS telephone ,shipping_address_1 AS shipping_address_1,shipping_city AS shipping_city, o.date_added, o.date_modified FROM ocny_order o WHERE (o.order_status_id = '2') ORDER BY o.order_id DESC LIMIT 0,20'

生成列的子选择之一 return 不止一行。您要么需要使用 LIMIT 1 强制对单行进行 returned,要么在子选择中使用 GROUP_CONCAT 以同样地 return 单行。

例如

SELECT os.name FROM ocny_order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1' LIMIT 1

SELECT GROUP_CONCAT(os.name) FROM ocny_order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1')