我有2个基本表 - 一个包含主ID记录的主表和一个包含可变数量的值引用的相关表,如下所示。
表A:主要(一)
+----+-------------+
| ID | description |
+----+-------------+
| 1 | Arnold |
+----+-------------+
| 3 | Baker |
+----+-------------+
| 7 | Charlie |
+----+-------------+
表B:相关(许多)
+----+-------+
| ID | value |
+----+-------+
| 1 | 1 |
+----+-------+
| 1 | 2 |
+----+-------+
| 3 | 3 |
+----+-------+
| 3 | 2 |
+----+-------+
| 3 | 1 |
+----+-------+
| 7 | 2 |
+----+-------+
将表A与表B连接后,是否可以以表B中的value
列作为数组返回的方式返回列?
我希望返回类似下面的结果集(基于上面的示例),其中第二列可以作为数组值而不是字符串值处理:
{
[0] => 1
[1] => array(1,2)
}
{
[0] => 3
[1] => array(3,2,1)
}
{
[0] => 7
[1] => array(2)
}
这是我的查询语句,用于将列作为字符串值:
SELECT tablea.*, tableb.value
FROM tablea
LEFT JOIN tableb ON tableb.ID = tablea.ID
答案 0 :(得分:1)
通常,这是通过在使用应用程序逻辑读取结果集时构建多维数组来完成的。这是一些伪代码:
array = [];
while (row = {some DB row retrieval method}) {
array[row['id']][] = row['value'];
}
如果PHP是您的语言:
$array = array();
while ($row = {some DB row retrieval method}) {
$array[$row['id']][] = $row['value'];
}