gpt4 book ai didi

PHP 使用 LEFT JOIN 时如何按结果数组进行分组

转载 作者:行者123 更新时间:2023-11-29 14:06:58 24 4
gpt4 key购买 nike

请简化对我的问题的解释,假设我已经完成了一个小型 SQL 查询来从三个表中选择数据:

SELECT  blockTitre, ChampsType, ChampsNom
FROM form_builder
LEFT JOIN block_champs
ON formBuilderBId = blockId
RIGHT JOIN ajout_champs
ON ChampsId = formBuilderChId

当我 var_dump 结果时,我得到以下结果:

array (size=6)
0 =>
object(stdClass)[8]
public 'blockTitre' => string 'Misc' (length=4)
public 'ChampsType' => string 'submit' (length=6)
public 'ChampsNom' => string 'submit' (length=6)
1 =>
object(stdClass)[9]
public 'blockTitre' => string 'Misc' (length=4)
public 'ChampsType' => string 'hidden' (length=6)
public 'ChampsNom' => string 'page' (length=4)
2 =>
object(stdClass)[10]
public 'blockTitre' => string 'Information général' (length=21)
public 'ChampsType' => string 'text' (length=4)
public 'ChampsNom' => string 'email' (length=5)
3 =>
object(stdClass)[11]
public 'blockTitre' => string 'Information général' (length=21)
public 'ChampsType' => string 'text' (length=4)
public 'ChampsNom' => string 'prenom' (length=6)
4 =>
object(stdClass)[12]
public 'blockTitre' => string 'Information général' (length=21)
public 'ChampsType' => string 'text' (length=4)
public 'ChampsNom' => string 'age' (length=3)
5 =>
object(stdClass)[13]
public 'blockTitre' => string 'Misc' (length=4)
public 'ChampsType' => string 'text' (length=4)
public 'ChampsNom' => string 'nommm' (length=5)

我想要的是通过blockTitre重新组合结果。

我尝试了 SQL 语句 GROUP BY 但它只返回两行(我认为这是逻辑)!

请高手如何让所有行按blockTitre分组?

提前谢谢您。

编辑:

拜托,我需要得到类似的东西:

 0 =>
'blockTitre' => string 'Misc'
'ChampsType' => string 'submit'
'ChampsNom' => string 'submit'
'ChampsType' => string 'text'
'ChampsNom' => string 'nommm'
'ChampsType' => string 'hidden'
'ChampsNom' => string 'page'
1 =>
'blockTitre' => string 'Information général'
'ChampsType' => string 'text'
'ChampsNom' => string 'email'
'ChampsType' => string 'text'
'ChampsNom' => string 'prenom'
'ChampsType' => string 'text'
'ChampsNom' => string 'age'

最佳答案

GROUP BY 按照您描述的情况工作。它将仅保留唯一值:MiscInformation général。它将使用它看到的第一行来获取其他列的值。所以实际上,您只会得到 2 行。

您正在寻找的输出是什么?通常,您使用GROUP BY来仅获取唯一值,或者进行某种COUNTing。

请记住,SQL 只能提供“平面”数据,即如下结构:

data = {
"misc": [{
"row1",
"row2"
}],
"info": [{
"row1",
"row2"
}]
}

这是必须通过逐行读取结果集来完成的事情。

关于PHP 使用 LEFT JOIN 时如何按结果数组进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14198357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com