0

我有一个包含两列的数据库:

1. city : amsterdam, rome, london, amsterdam, rome, new york, ...
2. type : red, green, blue, red, green, ...

我必须从数据库中选择列的不同值并将其放在一起。

结果必须是这样的:

amsterdam red, amsterdam blue, amsterdam green, rome red, rome blue, rome green, london ...

我尝试使用“select distinct”和“array_unique”,可能是错误的方式,但我无法得到结果。

4

2 回答 2

2

你可以这样做:

select city.city, color.color
from (select distinct city
      from t
     ) city cross join
     (select distinct color
      from t
     ) color

您正在从两列中查找所有值的组合。第一个子查询返回city列中的所有值。第二个所有值来自color。这cross join是产生所有组合的 SQL 机制。

于 2013-05-27T13:46:16.330 回答
0
SELECT DISTINCT city, type
FROM table
于 2013-05-27T13:44:53.387 回答