我有一个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中的任何一个?
答案 0 :(得分:1)
如果子查询可以返回一组(值)而不是单个(标量)值,则不能使用=
。您是否尝试过使用IN
?
(详细说明:something = (1,2,3)
意味着......其中一个或全部是什么?似乎你想要something is one of (1,2,3)
,在SQL中something IN (1,2,3)
- 知道,替换{ {1}}在您的查询中使用=
并且您应该很高兴。)