打印第一个城市人口少于另一个城市的成对城市的名称

时间:2019-03-04 12:10:12

标签: sql

假设我们有一个一个表,其中包含以下字段。

城市

ID ....................... int

名称............. char(20)

人口.... int

ID | Name | Population
1  | Tokyo | 200
2  | Houston | 300
3  | Manchester | 100

如何查询第一个城市的人口少于第二个城市且以空格分隔的城市对? (名称A的人口<名称B的人口)

预期结果:

Manchester, Tokyo
Tokyo, Houston

我尝试了以下操作:

SELECT a.name, b.name
FROM CITY a,
     CITY b
WHERE a.population < b.population AND a.population != b.population;

1 个答案:

答案 0 :(得分:2)

好吧,大概您需要将城市的名称连接在一起。您正在获取人口。

SELECT CONCAT_WS(' ', a.name, b.name)
FROM CITY a JOIN
     CITY b 
     ON a.population < b.population;

CONCAT_WS()是一个方便的函数,它使用分隔符将值连接起来。

此条件是不必要的:AND a.population != b.population