PostgreSQL PHP – 在Excel / CSV导出中,使用第二个表的值作为列标题和列描述中第一个表的值

前段时间,一个大的Excel文件被导入PostgreSQL表格。 在Excel中的布局是这样的(查看列表号码行号):

  1. 一些列| 其他一些列| 还有一个| …
  2. 描述文字foo | 描述text2 | bar foo bar | …
  3. 值a | 值b | 值c | …
  4. 值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个查询可能会简单得多:

  1. 第一个从mapping获取数据并显示前两行(每个结果的一个循环)

  2. 另一个获取其余的数据,并将其显示为单独的行