php - 我想查询连接的记录(左连接)并将它们放入 PhP 中的数组结构中,如何?

标签 php mysql join

几乎像这样:PHP/mySQL - how to fetch nested rows into multidimensinal array

SELECT products.NAME, products_prices.PRICE FROM products LEFT JOIN products_prices ON products.ID = products_prices.PROD_ID

这通常会导致:

NAME,   PRICE
window, 1000
window, 1200
mouse,  1400

因为 window 有两个价格而且可能根本没有价格。我希望它成为一个数组:

$arr = array(
             array('NAME' => 'window', 'price' => array(
                                                        array('PRICE' => 1000),
                                                        array('PRICE' => 1200)
                                                       ),
             array('NAME' => 'mouse', 'price' => array(
                                                       array('PRICE' => 1400)
                                                      )
            );

因此,连接的记录将是子数组。另一个问题可能有多个连接,但只有 LEFT JOIN-s。如何很好地做到这一点?链接示例将连接的列放在主要部分,我不想这样做。

最佳答案

看起来像这样:

 $dataStore = array();
 foreach ($recordSet as $record){
     $dataStore[$record['NAME']]['prices'][] = $record['PRICE'];
 }

只有当您确定一个产品名称可以有多个价格时,这才有效。

关于php - 我想查询连接的记录(左连接)并将它们放入 PhP 中的数组结构中,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10432355/

相关文章:

php - 按投票排序 DESC 但未投票不显示

mySql - 通过比较同一个表中的行进行更新

python - 使用完全外连接连接 pandas 中的两个数据帧

php - MySQLi LEFT JOIN 查询抛出语法错误

PHP 未设置不适用于每个

javascript - 本地主机中 Magento 2.3.0 CE 上的空白管理页面

php - MySQL SELECT 语句只返回一行

MySQL 在更新触发之前出现错误

php - 使用 HTTP POST 登录表单

MYSQL查询根据查询结果从同一个表中的2条不同记录中提取数据