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

时间:2016-01-15 13:43:19

标签: php sql excel postgresql

不久前,一个大的Excel文件被导入到PostgreSQL表中。 Excel中的布局是这样的(请参阅列表编号作为行号):

  1. 某些专栏|其他一些专栏|又一个| ...
  2. Descriptiontext foo | Descriptiontext2 | bar foo bar | ...
  3. 价值a |价值b |价值c | ...
  4. 价值aa |价值bb |价值cc | ...
  5. 所以有一个带有列名的标题行,然后是一行,每行有一个描述文本,然后是数百行,包含所有值。

    在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吗?

2 个答案:

答案 0 :(得分:0)

只需创建一个 FUNCTION 即可将两个表与您的愿望格式合并

然后使用 COPY 创建Excel文件。这里不需要使用php

答案 1 :(得分:0)

在PHP中使用2个查询可能会更简单:

  1. 第一个从Route::get('admin/sessions', ['middleware' => ['ability:super_admin,sessions.view'], 'uses' => 'Admin\SessionsController@index', 'as' => 'admin.sessions']); 获取数据并显示前两行(每个结果一个循环)

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