创建所有可能的组合

时间:2017-05-09 12:10:12

标签: sql database postgresql

我希望在PostgreSQL中创建3个不同表中值的所有可能组合,将它们组合为用下划线_分隔的唯一字符串。

例:

table car_type
column 'type' contains: diesel, gasoline, electric

table car_color
column 'color' contains: black, blue, red

table car_stereo
column 'checked' contains: true, false

我想要一个包含所有值的视图:

diesel_black_true
diesel_blue_true
diesel_red_true
diesel_black_false
diesel_blue_false
diesel_red_false
gasoline_black_true
gasoline_red_true
...

希望它有意义,是否有可能以通用和动态的方式?

1 个答案:

答案 0 :(得分:3)

您可以Cross Join表格来获取所有组合

Select t.type||'_'||c.color||'_'||s.checked
From car_type t
Cross join car_color c
Cross join car_stereo s;