前段时间,一个大的Excel文件被导入到PostgreSQL表中。Excel中的布局是这样的(请参阅将数字列为行号):
- 部分专栏 | 其他一些专栏 | 又一个 | ...
- 描述文本 foo | 描述文本2 | 酒吧 foo 酒吧 | ...
- 值 a | 值 b |值 c |...
- 价值 AA | 价值 bb |价值抄送 |...
一行,每列都有描述文本,然后是包含所有值的数百行。
在PostgreSQL中创建了两个表。
表1:
CREATE TABLE t1 (
t1_id integer NOT NULL
col1 inet,
some_other_col character varying,
another_one integer,
...
);
表2:
CREATE TABLE mapping (
mapping_id integer NOT NULL
colname character varying,
mapping character varying,
description character varying,
);
INSERT INTO mapping VALUES (1, 'col1', 'Some Column', 'Descriptiontext foo');
INSERT INTO mapping VALUES (2, 'some_other_col', 'Some other Column', 'Descriptiontext2');
INSERT INTO mapping VALUES (3, 'another_one', 'Yet another one', 'bar foo bar');
我现在的问题是,如何再次合并这些表以导出与旧表格式相同的Excel工作表?我是否需要PHP,或者仅使用SQL就可以这样做吗?
只需创建一个函数即可将两个表与您想要的格式合并
然后使用 COPY 创建 excel 文件。这里不需要使用 php
在 PHP 中使用 2 个查询可能会简单得多:
-
第一个从
mapping
获取数据并显示前两行(对每行的结果进行一次循环) -
另一个用于获取其余数据并将它们显示为单独的行