使用重复数据创建临时表

时间:2018-01-08 22:49:19

标签: postgresql join temp-tables

我有两张桌子(颜色和数字)。我想把它们放在一起的格式中,每种颜色都将每个数字作为条目重复。

我的两张桌子:

CREATE TABLE colors (
color VARCHAR(20)
); 

INSERT INTO colors
     (color)
VALUES
     ("red"),
     ("green"),
     ("blue");

CREATE TABLE hours (
 hour NUMERIC
); 

INSERT INTO hours
     (hour)
VALUES
     (1),
     (2),
     (3),
     (4);

我希望我的输出看起来像:

Color   Hour  
red      1  
red      2
red      3
red      4
green    1
green    2
green    3
green    4
blue     1  
blue     2
blue     3
blue     4

感谢您的帮助。我假设在不使用数字表的情况下也有一些循环方式。但没必要。

1 个答案:

答案 0 :(得分:1)

您正在寻找cross join

select c.color, h.hour
from colors c cross join
     hours h;

如果订购很重要,请使用order by。这适用于您的示例:

select c.color, h.hour
from colors c cross join
     hours h
order by c.color desc, h.hour;