PostgreSQL在每一行上连接两个表

时间:2013-09-16 10:46:43

标签: postgresql concatenation

我有两张桌子(所有情况下value都是character varying):

table_one

|id|value|
|--+-----|
|1 |A    |
|2 |B    |
|3 |C    |
|4 |D    |

table_two

|id|value|
|--+-----|
|11|0    |
|12|1    |
|13|2    |
|14|3    |
|15|4    |
|16|5    |

我想做一个导致以下结果的查询:

结果:

|value|
|-----|
|A_0  |
|A_1  |
|A_2  |
|A_3  |
|A_4  |
|A_5  |
|B_0  |
|B_1  |
|B_2  |
|B_3  |
|B_4  |
|B_5  |
|C_0  |
|C_1  |
|C_2  |
|C_3  |
|C_4  |
|C_5  |
|D_0  |
|D_1  |
|D_2  |
|D_3  |
|D_4  |
|D_5  |

这是针对PostgreSQL 8.4.9的很少运行报告,因此性能并不重要。如果答案是9.x特定的,升级肯定不是不可能的,所以随时给出9.x具体的答案。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

select
 table_one.val || '_' || table_two.val
from
 table_one
 cross join table_two

cross join的文档。

SQLFiddle