这个数据库查询有什么问题?

101*_*101 4 sql database derby

我在数据库中有以下表格(我只列出重要的属性):

Person(ssn,countryofbirth)
Parents(ssn,fatherbirthcountry)
Employment(ssn, companyID)
Company(companyID, name)
Run Code Online (Sandbox Code Playgroud)

我的任务是这样:在父亲国家作为输入的情况下,输出其国家分娩与父亲国家投入相匹配的人所在公司的名称.

我假装父亲是墨西哥并且这样做:

SELECT name 
FROM Company 
WHERE companyid = (SELECT companyid  
                   FROM Employment 
                   WHERE ssn = (SELECT ssn 
                                FROM Person 
                                WHERE countryofbirth = 'Mexico');
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:

>Scalar subquery is only allowed to return a single row.
Run Code Online (Sandbox Code Playgroud)

我完全偏离了轨道吗?有人可以帮忙吗?

Mik*_*icz 6

问题是您的子查询返回多个结果,因此您必须使用where invs =..

更改where ssn =where ssn in,并where companyid =where companyid in.