ORACLE - 通过将外键与每个返回的键进行比较来返回记录

时间:2016-03-18 00:04:59

标签: sql database oracle

我有一个SQL语句,它返回"单行子查询返回多行" Oracle中的错误:

SELECT * FROM lds_placement 
WHERE fk1_account_id = 
  (SELECT lds_account.account_id 
   FROM lds_account 
   WHERE lds_account.fk1_consultant_id = 
     (SELECT consultant_id 
      FROM lds_consultant 
      WHERE UPPER(cst_name) LIKE UPPER(:app_user) || ' %' ));

如何比较和显示lds_placement中的所有记录,其中fk1_account_id等于lds_account表中返回的account_id中的任何一个?

1 个答案:

答案 0 :(得分:1)

如果子查询可以返回一组(值)而不是单个(标量)值,则不能使用=。您是否尝试过使用IN

(详细说明:something = (1,2,3)意味着......其中一个或全部是什么?似乎你想要something is one of (1,2,3),在SQL中something IN (1,2,3) - 知道,替换{ {1}}在您的查询中使用=并且您应该很高兴。)