这里有张 World 表
+-----------------+------------+------------+--------------+---------------+| name | continent | area | population | gdp |+-----------------+------------+------------+--------------+---------------+| Afghanistan | Asia | 652230 | 25500100 | 20343000 || Albania | Europe | 28748 | 2831741 | 12960000 || Algeria | Africa | 2381741 | 37100000 | 188681000 || Andorra | Europe | 468 | 78115 | 3712000 || Angola | Africa | 1246700 | 20609294 | 100990000 |+-----------------+------------+------------+--------------+---------------+
如果一个国家的面积超过300万平方公里,或者人口超过2500万,那么这个国家就是大国家。
编写一个SQL查询,输出表中所有大国家的名称、人口和面积。
例如,根据上表,我们应该输出:
+--------------+-------------+--------------+| name | population | area |+--------------+-------------+--------------+| Afghanistan | 25500100 | 652230 || Algeria | 37100000 | 2381741 |+--------------+-------------+--------------+
Solution:
方法一
使用mysql or 来实现判断条件的与。
select name,population,area from world where population>25000000 or area>3000000;
方法二:
使用mysql union 操作符把两个select 结果集合并到一起。
select name,population,area from world where area>3000000 union select name,population,area from world where population>25000000;
额外 mysql union与mysql union all 区别
union 操作符用于合并两个或多个select语句的结果集。union内部的select语句必须拥有相同数量的列。列也必须拥有相似的数据类型。
union 是对数据进行并集操作,不包括重复行(唯一),同时进行默认排序。
union all 是对数据进行并集操作,包括重复行(不唯一),不进行排序。
作者:lconcise
链接:https://www.jianshu.com/p/2675d2eb1a06