【问题标题】:Create multidimensional array from table where duplicative IDs have the same parent Key从重复 ID 具有相同父键的表中创建多维数组
【发布时间】:2015-10-06 20:15:30
【问题描述】:

我有一张这样的桌子:

--primary id---office id----
|----1-------|---10--------|
|----2-------|---10--------|
|----3-------|---20--------|
|----4-------|---10--------|
|----5-------|---20--------|
----------------------------

我想要一个像这样的对象/数组:

Array = array(
  "10" => array(
      "Primary ID" => 1,
      "Primary ID" => 2,
      "Primary ID" => 4
   ),
  "20" => array(
      "Primary ID" => 3,
      "Primary ID" => 5
   )
)

我的查询是:

SELECT * FROM table ORDER BY office id

对于这种情况有更好的查询吗?
有没有像上面那样创建Array的简单小方法?

编辑:我正在为此使用 SQL Server...很遗憾没有 GROUP_CONCAT 等...):

谢谢!

【问题讨论】:

    标签: php mysql sql arrays multidimensional-array


    【解决方案1】:

    最好使用LISTAGG函数。 即

    SELECT office id, LISTAGG(primary id, ', ')
    FROM table
    GROUP BY office id
    ORDER BY office id
    

    一旦你得到上述sql的结果,我们可以通过分隔符','对每一行进行标记,并将标记化的数据放入数组中。

    【讨论】:

      【解决方案2】:

      您可以使用以下查询:

      SELECT primary id, GROUP_CONCAT(office id) as office_id
      FROM table
      GROUP BY primary_id;
      

      这将返回结果为:

      primary_id   office_id
      ---------------------------
      10           1,2,4
      20           3,5
      

      这将使您更容易处理它并将其存储在数组中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-07
        • 2020-11-15
        • 1970-01-01
        • 2021-07-02
        • 2012-06-29
        • 2018-10-20
        • 1970-01-01
        相关资源
        最近更新 更多