PostgreSQL PHP – 在Excel / CSV导出中,使用第二个表的值作为列标题和列描述中第一个表的值
前段时间,一个大的Excel文件被导入PostgreSQL表格。 在Excel中的布局是这样的(查看列表号码行号):
- 一些列| 其他一些列| 还有一个| …
- 描述文字foo | 描述text2 | bar foo bar | …
- 值a | 值b | 值c | …
- 值aa | 值bb | 值cc | …
所以有标题行的列名称,然后是每行的描述文本行,并在那之后,数百行的所有值。
在PostgreSQL中创build两个表。
表格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?
只需创build一个function来合并表和你的愿望格式
然后使用COPY创buildexcel文件。 这里不需要使用php
在PHP中使用2个查询可能会简单得多:
-
第一个从
mapping
获取数据并显示前两行(每个结果的一个循环) -
另一个获取其余的数据,并将其显示为单独的行