加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 内连接数组结果

发布时间:2020-12-13 17:13:16 所属栏目:PHP教程 来源:网络整理
导读:查看此数组,可以看到只有foo6值与每个父键不同: Array( [0] = Array ( [foo1] = Apple [foo2] = Banana [foo3] = Carrots [foo4] = Deer [foo5] = Feather [foo6] = Grapes ) [1] = Array ( [foo1] = Apple [foo2] = Banana [foo3] = Carrots [foo4] = Deer
查看此数组,可以看到只有foo6值与每个父键不同:

Array
(
    [0] => Array
        (
          [foo1] => Apple
          [foo2] => Banana
          [foo3] => Carrots
          [foo4] => Deer
          [foo5] => Feather
          [foo6] => Grapes
        )
    [1] => Array
        (
          [foo1] => Apple
          [foo2] => Banana
          [foo3] => Carrots
          [foo4] => Deer
          [foo5] => Feather
          [foo6] => Heater
        )
    [2] => Array
        (
          [foo1] => Apple
          [foo2] => Banana
          [foo3] => Carrots
          [foo4] => Deer
          [foo5] => Feather
          [foo6] => Quail Eggs
        )
)

查询:

SELECT
  tpp.page_master_properties_style AS foo1,tpp.page_master_properties_bg AS foo2,tpp.page_master_properties_data AS foo3,tpp.page_properties_style AS foo4,tpp.page_properties_bg AS foo5,tpp.page_properties_data AS foo6,tobj.objects_script AS foo6
FROM templates t
  INNER JOIN category tc
    ON t.category_id = tc.category_id
  INNER JOIN page_properties tpp
    ON t.templates_id = tpp.templates_id
  INNER JOIN objects tobj
    ON t.templates_id = tobj.templates_id
WHERE
  t.templates_id = ?

哪里? = 1

这可能是因为Table对象有多个templates_id条目:

+--------------+----------------+-----------------+
|  objects_id  |  templates_id  |  objects_script |
+--------------+----------------+-----------------+
|       1      |        1       |      Grapes     |
|       2      |        1       |      Heater     |
|       3      |        1       |     Quail Eggs  |
|       4      |        2       |       Milk      |
|       5      |        3       |       Lemon     |
+--------------+----------------+-----------------+

我想知道是否有任何内置的mySQL函数可以将foo6组合成一个奇异的数组,例如实现这样的结果:

Array
(
  [foo1] => Apple
  [foo2] => Banana
  [foo3] => Carrots
  [foo4] => Deer
  [foo5] => Feather
  [foo6] => Array
            (
              [0] => Grapes
              [1] => Heater
              [2] => Quail Eggs
            )
)

解决方法

这看起来像是mysql arsenal中的 group_concat作业:

SELECT
  tpp.page_master_properties_style AS foo1,group_concat(tpp.page_properties_data) AS foo6,tobj.objects_script AS foo6
FROM templates t
  INNER JOIN category tc
    ON t.category_id = tc.category_id
  INNER JOIN page_properties tpp
    ON t.templates_id = tpp.templates_id
  INNER JOIN objects tobj
    ON t.templates_id = tobj.templates_id
WHERE
  t.templates_id = ?
GROUP BY
  tpp.page_master_properties_style AS foo1,tpp.page_properties_bg AS foo5

这会将tpp.page_properties_data中的所有行组合到唯一的数据行中并用逗号分隔 – 当您循环遍历数据集时,可以轻松地将explode分成数组.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读