当前位置: 首页 > 知识库问答 >
问题:

PostgreSQL PHP-使用第二个表的值作为列标题,并在Excel/CSV导出中对第一个表的值进行列描述

蒋星驰
2023-03-14

不久前,一个大的Excel文件被导入到PostgreSQL表中。Excel中的布局如下所示(请将列表编号视为行号):

  1. 一些专栏|另一些专栏|还有另一个专栏|
  2. Descriptiontext foo | Descriptiontext 2 | bar foo bar |
  3. 值a |值b |值c |
  4. 值aa |值bb |值cc |

所以有一个标题行和列名,然后是一行,每个列有一个描述文本,然后是数百行和所有值。

在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个答案

朱修真
2023-03-14

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

>

  • 映射中获取数据并显示前两行的第一个(每个行的结果一个循环)

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

  • 周朗
    2023-03-14

    只需创建一个函数,将这两个表合并为您想要的格式

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

     类似资料:
    • 使用map从两个字符串列表中获取对象列表时,我有点困惑。 让我们举个例子:列表1: 清单2: 名称的数据类如下 现在我想要一个列表,它是name和lastName的组合,我们使用name索引来获取lastName。 作为输出的名称列表如下: 请求使用rx kotlin函数。通过使用集合很容易解决。

    • 我正在尝试根据第二个列表中的值筛选对象列表。 现在我想移除列表A的项目,该项目的ID在列表B中可用。 null null 感谢任何帮助

    • 我希望表的所有都具有,其被的重写。 结果应该变成: 我可以通过单独的查询获得它,例如: 第二个查询的结果应该合并到第一个查询中,这样:“当第二个表中的boolean为TRUE时,用第一个表覆盖第二个表的结果” role_cap和enduser_cap表中的正确值都应该成为结果的一部分。但是,如果对于相同的user_cap_id,role_cap有FALSE条目,而enduser_cap有TRUE条

    • 问题内容: 如果我在Pandas中有一个DataFrame,看起来像这样: 如何从每一行中获取第一个非空值?例如,上面我想得到:(或等效的Series)。 问题答案: 这是一种非常麻烦的方法,首先用于获取有效列,将返回的序列转换为数据框,以便我们可以逐行调用并将其索引回原始df: 编辑 稍微干净一点的方法:

    • 问题内容: 我有这样的结构: 我想使用内置方法(在一行中)对整数()求和。 有任何想法吗? 问题答案: 会工作。

    • 我试图在一系列列表中添加第一个值,然后从一系列列表中添加第二个值,依此类推。 例如: 因此,我希望 180, 210,240, 270, 300 到目前为止,我的代码是: