带有IN子句的MySQL子查询

时间:2016-01-23 20:12:05

标签: mysql

此查询正常工作:

SELECT country_name FROM countries WHERE country_id IN (23,86,79)

所以我可以获得国家/地区列表基于那些country_id的名称。但我想要的是用子查询来获取它们:

SELECT country_name  FROM countries WHERE country_id IN (SELECT office_id FROM countries WHERE country_code='FRA')

我可以获得办公室ID的第一个名称而不是全部(在这种情况下应该是4)。 office_id和country_id是Int。有帮助吗?

1 个答案:

答案 0 :(得分:2)

为什么你需要这样的错误/长转弯查询。您发布的查询(如下)与子查询

SELECT country_name 
FROM countries 
WHERE country_id IN ( SELECT office_id 
                      FROM countries 
                      WHERE country_code='FRA' )

可以简单

SELECT country_name 
FROM countries 
WHERE country_code='FRA';