我有 2 张桌子。表 A、表 B。
Table A:
a_ID (313, 314, 315, 322) avg_data (50, 920, 12, 16)
Table B:
a_ID (313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323)
b_ID (204, 204, 204, 205, 205, 206, 207, 208, 209, 210, 210)
所以多个a_ID 属于一个b_ID。
我想为表 B 中属于 b_ID 的所有 a_ID 获取表 A 中的 avg_data 平均值。我正在尝试在 php 中执行此操作。
就像是:
GET the list of a_ID in table B that have the same b_ID, then search table_A for all these ID's in the list and get the average of their respective avg_data column.
这可能只在一个 SQL 语句中完成吗?
到目前为止我已经尝试过
$qry="SELECT b_ID
FROM table_B";
$result= mysql_query($qry);
while($row = mysql_fetch_assoc($result)) {
$[b_ID] =$row['b_ID'];
}
foreach($b_ID as $value) {
$qry="SELECT a_ID
FROM table_B WHERE b_ID = '$value'";
$result= mysql_query($qry);
while($row = mysql_fetch_assoc($result)) {
$a_ID[] =$row['a_ID'];
}
$search = implode(', ', $a_ID);
echo $search;
}
所以这应该输出
313, 314, 315 <br> 316, 317 <br> 318 <br> 319 etc
但它实际上输出:
313, 314, 315, 322, 313, 314, 315
313, 314, 315, 322, 313, 314, 315, 316, 317
313, 314, 315, 322, 313, 314, 315, 316, 317, 318
这是为了获取属于每个 b_ID 的 a_ID 的列表,以便我可以找到平均值,但是,输出不正确并且包含的 a_ID 比应有的多。
我试图尽可能地解释这一点,但它似乎不是很好。