php循环从第二个表中获取值

php循环从第二个表中获取值,php,mysqli,Php,Mysqli,我有两个表:tableA和tableB我想打印tableB的列值。 我的表格结构如下: Table A -id--------Name----- 1 A 2 B 3 C 4 D -------------------- Table B tableB_id-----------tableA_id-------------value------- 1 1

我有两个表:
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

我尝试了以下代码:

这里对于
表A中的每个id
将有多个
print\r($arr1)
命令,表示为
FIRST
。在代码中,它正在打印重复的值,但命令重新呈现为
SECOND
正在获得正确的值

我的问题是如何避免
第一部分中的重复值

<?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);
}
?>


我不确定我是否正确理解了这个问题-但我认为您可能在寻找的是

我认为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

是的,我可以使用GROUP_CONCAT,但我可能A在使用逗号分隔后,我需要再引用一个表来获取id的名称。这可能吗?我使用了GROUP CONCAT和查询。问题是GROUP_CONCAT值必须引用到另一个表才能获取id的名称,这就是为什么我想避免小组讨论的原因。你能更新你的问题以展示你所需要的完整示例吗,包括第三个表格?。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。