【问题标题】:Create temp table with duplicate data创建具有重复数据的临时表
【发布时间】:2018-01-08 22:49:18
【问题描述】:

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

我的两张桌子:

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

感谢您的帮助。我假设也有某种方式循环方式来做到这一点,而不使用数字表。但没必要。

【问题讨论】:

标签: postgresql join temp-tables


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2021-07-02
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多