help with subquery! returns more than 1 row

点点圈 提交于 2019-12-02 09:05:54

This is because you are trying to compare region to a table of values. Instead, try using in:

select name 
from bbc 
where region in 
    (select region from bbc where name='India' or name='Iran')

You might have slightly different syntax and it'll work:

SELECT name 
FROM bbc 
WHERE region IN
(
   SELECT region FROM bbc WHERE name='India' OR name='Iran'
)

The only difference being that instead of equals (=), we use IN.

The reason your previous one failed is because to use equals, you compare one value with one other value. What you were accidentally doing is comparing one value with multiple values (the "SubQuery returns more than one row"). The change here is saying where region is within the results returned from the sub query.

select name,region from bbc where region IN (select region from bbc where name IN('India','Iran'))

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!