Php 此查询的错误在哪里?

Php 此查询的错误在哪里?,php,mysql,Php,Mysql,今天,我从许多不同的方面对此进行了攻击,但我还没有找到显示数据的最佳方法是使用一个可以显示在一个表中的查询。问题是我有三个问题,我正试图合并,但进展不太顺利。我觉得这很接近,但显然不正确 $sql = (SELECT SUM(datamb) AS value_sum FROM maindata GROUP BY phonenumber UNION select dataplan as currentplan from maindata GROUP BY phonenumber UNIO

今天,我从许多不同的方面对此进行了攻击,但我还没有找到显示数据的最佳方法是使用一个可以显示在一个表中的查询。问题是我有三个问题,我正试图合并,但进展不太顺利。我觉得这很接近,但显然不正确

$sql =  (SELECT SUM(datamb) AS value_sum FROM maindata GROUP BY phonenumber UNION select dataplan as currentplan from   maindata 

GROUP BY phonenumber UNION SELECT DISTINCT phonenumber AS value_sum1 FROM maindata);


$result = mysql_query($sql);



if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
}



while ($row = mysql_fetch_assoc($result)){

echo "<TABLE id='display'>";
echo "<td><b>Data Usage This Period: ". ROUND ($row["value_sum"],2) . "MB</b></td> ";
echo "<td><b>Data Plan: ". $row["currentplan"] . "</b></td> "; 
echo "<td><b>Phone Number: ". $row["value_sum1"] . "</b></td> ";  
echo "</TABLE>"; 

}

问题是我需要三列数据,而只有一列包含所有数据

首先替换此行:

$sql =  (SELECT SUM(datamb) AS value_sum FROM maindata GROUP BY phonenumber UNION select dataplan as currentplan from   maindata GROUP BY phonenumber UNION SELECT DISTINCT phonenumber AS value_sum1 FROM maindata);

UNION向查询中添加额外的行。看起来您只需要多个列。看看这个查询是否能让你更接近;如果没有,请显示一些样本数据和预期结果:

SELECT
  phonenumber AS value_sum1
  dataplan AS currentplan,
  SUM(datamb) AS value_sum
FROM maindata
GROUP BY
  phonenumber,
  dataplan

也可以考虑不要对音素和DATAPLAN列进行混叠,在这种情况下别名只是混淆了事物。您需要相应地更改PHP代码中的索引值。

那么问题到底是什么呢?您使用的是UNION。我很确定你想加入表格,但既然你没有说问题出在哪里,那只是个猜测。
SELECT
  phonenumber AS value_sum1
  dataplan AS currentplan,
  SUM(datamb) AS value_sum
FROM maindata
GROUP BY
  phonenumber,
  dataplan