我有两个表:tableA
和tableB
我想打印tableB
的列值。
我的表结构如下:
Table A
-id--------Name-----
1 A
2 B
3 C
4 D
--------------------
Table B
tableB_id-----------tableA_id-------------value-------
1 1 68
2 1 94
3 1 97
4 1 88
5 1 93
6 1 69
7 1 95
8 2 68
9 2 94
10 3 68
11 4 68
12 4 95
------------------------------------------------------
最终输出需要如下所示,值为逗号分隔
id------Name----------value-----------------------------------------
1 A 68,94,97,88,93,69,95
2 B 68,94
3 C 68
4 D 68,95
我尝试了以下代码:
此处tableA
中的每个ID都会有多个print_r($arr1)
命令,表示为FIRST
。在代码中,它正在打印重复值,但命令重新显示为SECOND
正在获取正确的值。
我的问题是我如何避免FIRST
代码部分
<?php
$rs = mysqli_query($dbc,"SELECT * FROM `tableA` limit $offset,$rows");
$items = array();
$a=0;
while($row1 = mysqli_fetch_object($rs))
{
$qry1 = mysqli_query($dbc,"SELECT tableB.value FROM tableA ,tableB WHERE tableA.`tableA_id`=tableB.`tableA_id` AND tableA.`tableA_id`='".$row->id."'");
$i=0;
while($row2 = mysqli_fetch_assoc($qry1))
{
if($row2['id']=$row1->id)
{
$arr1 = $row2['value'];
}
print_r($arr1); // SECOND
$i++;
}
print_r($arr1); // FIRST
array_push($items, $row1);
}
?>
答案 0 :(得分:0)
我不确定我是否正确理解了这个问题 - 但我认为您可能正在寻找的是GROUP_CONCAT
答案 1 :(得分:0)
我认为GeoffK与GROUP_CONCAT走在正确的轨道上。尝试这样的事情:
SELECT tableA.id AS id,
tableA.name AS name,
GROUP_CONCAT( tableB.value ) AS value
FROM tableA
JOIN tableB
ON tableA.id = tableB.tableA_id
GROUP BY tableA.id