我有一个包含两列的数据库:
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”,可能是以错误的方式,但我无法得到结果。
答案 0 :(得分: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机制。
答案 1 :(得分:0)
SELECT DISTINCT city, type
FROM table