我的查询目标是返回国家名称和国家元首,如果它的国家首长名称以A开头,并且该国家的首都使用嵌套查询的人数超过100,000。
这是我的查询:
SELECT country.name as country, (SELECT country.headofstate from country where country.headofstate like 'A%') from country, city where city.population > 100000;
我试着将其反转,将其放在where子句等中。我没有嵌套查询。我刚刚得到错误,例如“子查询返回多个行”之类的错误。如果有人可以帮助我如何订购它,并解释为什么需要采用某种方式,那就太好了。
如果必须“嵌套”,这是完成工作的一种方法:
SELECT o.name AS country, o.headofstate FROM country o WHERE o.headofstate like 'A%' AND ( SELECT i.population FROM city i WHERE i.id = o.capital ) > 100000
不过,AJOIN会比相关子查询更有效。难道是谁给了您这项任务,但他自己并没有加快步伐?
JOIN