当前位置: 首页 > 面试题库 >

此子查询最多可以返回一条记录。(错误3354)

公良英资
2023-03-14
问题内容

您好我的查询得到此错误帮助我恢复它

SELECT CompanyId, CompanyName, RegistrationNumber,
  (select CompanyAddress from RPT_Company_Address where 
   RPT_Company_Address.CompanyId=Company.CompanyId) AS CompanyAddress, 
  MobileNumber, FaxNumber, CompanyEmail, CompanyWebsite, VatTinNumber
FROM Company;`

问题答案:

您的RPT_Company_Address表似乎具有给定公司的多个地址。如果这不可能,则应尝试更正数据并修改架构以防止发生这种情况。

另一方面,如果可以有多个地址,则必须确定查询应如何处理它们:

1)您是否要多次列出同一公司行-每个地址一次?如果是这样,请使用INNER JOIN将它们全部返回:

SELECT Company.CompanyId, CompanyName, RegistrationNumber, CompanyAddress, ...
FROM Company
INNER JOIN RPT_Company_Address RCA ON RCA.CompanyId = Company.CompanyId

2)如果只需要第一个匹配地址,请在与每个公司相对应的第一个匹配地址上进行子查询:

SELECT Company.CompanyId, CompanyName, RegistrationNumber, CompanyAddress, ...
FROM Company
INNER JOIN
(
    SELECT CompanyId, ROW_NUMBER() OVER (ORDER BY 1 PARTITION BY CompanyId) AS Num
    FROM RPT_Company_Address
) Addresses
    ON Addresses.ComapnyId = Company.CompanyId  
WHERE Num = 1

3)如果您有其他方法来标识所需的“主要”地址,请添加WHERE具有该条件的子句:

SELECT Company.CompanyId, CompanyName, RegistrationNumber, CompanyAddress, ...
FROM Company
INNER JOIN RPT_Company_Address RCA ON RCA.CompanyId = Company.CompanyId
WHERE RCA.PrimaryAddress = 1


 类似资料:
  • 问题内容: 我想从MySQL查询返回第二条,第三条或第四条记录(基于ID递增的查询) 问题是,我不知道ID,只是它是查询中的第三行。 问题答案: 它说从记录n开始返回一个记录。

  • 问题内容: 当我尝试运行以下查询时出现错误: 是什么导致此错误? 问题答案: 将一个返回多列的子查询放在列表中,然后从中选择。 首先,相关子查询将是一个坏主意。但是,您的查询甚至没有关联,但是 没有关联 (没有链接到外部查询),并且似乎返回了多行。这导致产生笛卡尔积的(可能非常昂贵且荒谬的)交叉连接,可能不是您的(秘密)意图。 看起来您确实想要: 两者也都是毫无意义的。WHERE条件将一个强制为a

  • 问题内容: 此查询有什么问题? 我有错误 ORA-01427:单行子查询返回多个行 01427。00000-“单行子查询返回多个行” 问题答案: 这是您的查询: 这样使用的子查询称为 标量子查询 。可以在可以使用标量值(即单个值,例如数字或字符串)的地方使用此类子查询。 标量子查询必须满足两个条件: 它最多返回一行。 它返回一列。 您的解决方案很简单,使用以下命令: 或者,在Oracle 12C中

  • 问题内容: 我有一个具有相似结构和数据的示例表,如下所示: 表在每个学生出现的所有科目中都有每个学生的合并标记。 请帮助我,编写一个查询以提取每个学生( 不分学科/其他学生 )获得的MAXIMUM分数,如下所示: 按S_Name和Max(MARK_Value)分组 问题答案: 使用窗口功能 或者您可以使用相关的子查询

  • 当“事件ID”与“用户ID”匹配时,im会尝试从我的“事件”表中选择所有数据。然而,我得到一个错误1242,子查询返回超过1行。 我理解我的子查询将返回多行,因为一个用户可以参加多个事件。那么我如何使我的查询接受多行呢?

  • 本文向大家介绍Mybatis查询多条记录并返回List集合的方法,包括了Mybatis查询多条记录并返回List集合的方法的使用技巧和注意事项,需要的朋友参考一下 实体对象如下: XML映射文件如下: 接口文件方法如下: 测试文件如下: 笔记: XML中只需resultType属性值为实体对象别名或全路径名。 mybatis会通过接口文件的返回值类型来判断返回的是集合还是对象。如果是对象,则按常规