代码之家  ›  专栏  ›  技术社区  ›  niczak

查询多个表,只返回一个数组?

  •  0
  • niczak  · 技术社区  · 15 年前

    嘿,大家好,我想知道最好的方法是:

    最多查询5个表(取决于用户输入),将结果返回 单个数组 . 假设我查询表A并将结果存储为结果句柄(从pg_query()fn返回),我应该继续将这些结果转换为数组,然后继续将后续查询的结果附加到该数组中吗?如果是的话,我可以简单地使用array_merge()函数吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   chaos    15 年前

    听起来你想要一个 UNION .

        2
  •  0
  •   knittl    15 年前

    使用工会:

    SELECT col1, col2
      FROM a
     UNION
    SELECT col1, col2
      FROM b
    
        3
  •  0
  •   MANCHUCK    15 年前

    只有当你的结果很低时,使用联合才可能是答案。Union对DB服务器有点负担,有些DB很难优化它们。通过使用存储过程或进行5个查询,然后进行数组合并,将允许DB服务器缓存一些结果并提高DB性能。

    如果结果集将很低,并且不会有太多调用,那么使用联合就可以了。