如何修复 Ora-01427 单行子查询 returns 多于一行的错误?

How to fix Ora-01427 single-row subquery returns more than one row error?

我有这样的查询,它给了我单行子查询 returns 不止一行错误:


SELECT COUNT(PERSONNEL_ID) 
FROM (SELECT DISTINCT * FROM CUSTOMERS)
WHERE CUSTOMER_ID = (SELECT CUSTOMER_ID FROM TRANSACTIONS)

它试图从客户 table 获取不同 PERSONNEL_ID 的计数,其中 CUSTOMER_ID 在客户 table 和 CUSTOMER_ID 在交易 table相等

你能告诉我如何解决我的查询吗?

您在 transactions 中有不止一位客户。据推测,您打算:

WHERE CUSTOMER_ID IN (SELECT CUSTOMER_ID FROM TRANSACTIONS)

您也可以将其表述为:

WHERE CUSTOMER_ID = ANY (SELECT CUSTOMER_ID FROM TRANSACTIONS)