【问题标题】:1242 - Subquery returns more than 1 row, What's wrong?1242 - 子查询返回多于 1 行,怎么了?
【发布时间】:2020-05-09 06:54:43
【问题描述】:

我试过这个查询:

SELECT `wh_pengeluaran`.`Nomor Dokumen`, `wh_pengeluaran`.`Created 
Date`, `inventory transactions`.`Transaction Item`,(SELECT Quantity 
FROM `inventory transactions` WHERE `inventory transactions`.`Proforma 
Invoice` > 0) as qtykeluar
FROM `inventory transactions` JOIN `wh_pengeluaran`
WHERE `inventory transactions`.`Transaction Item` = 1

但是 MySQL 说:文档

1242 - 子查询返回多于 1 行

请大家帮忙。语法有什么问题?我不知道 谢谢! :)

【问题讨论】:

  • hi Metta,欢迎来到stackoverflow,正如错误所说,子查询(你的SELECT Quantity FROM... as qtykeluar)返回多个结果,所以mysql不知道如何将多个项目放入单个列中。如果我们知道,您想通过查询实现什么?仅供参考,如果您不关心子查询的其余结果,可以使用LIMIT
  • 这能回答你的问题吗? #1242 - Subquery returns more than 1 row - mysql

标签: php mysql database codeigniter


【解决方案1】:

问题是子查询返回多行,如果您将其与 select 语句一起使用,这是不可能的。 MySql 不知道从多个项目中将什么放入单个列中。

我不知道您究竟想要实现什么,但如果您不关心子查询的所有记录并想选择任何一条记录,您可能可以使用 LIMIT 1 在子查询中仅选择一条记录。

您的子查询应如下所示:

SELECT Quantity 
FROM `inventory transactions` WHERE `inventory transactions`.`Proforma 
Invoice` > 0 LIMIT 1

完整查询:

SELECT `wh_pengeluaran`.`Nomor Dokumen`, `wh_pengeluaran`.`Created 
Date`, `inventory transactions`.`Transaction Item`,(SELECT Quantity 
FROM `inventory transactions` WHERE `inventory transactions`.`Proforma 
Invoice` > 0 LIMIT 1) as qtykeluar
FROM `inventory transactions` JOIN `wh_pengeluaran`
WHERE `inventory transactions`.`Transaction Item` = 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-17
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2018-08-06
    • 1970-01-01
    相关资源
    最近更新 更多