【问题标题】:how to select two columns from two tables in mysql如何从mysql中的两个表中选择两列
【发布时间】:2012-10-18 13:40:15
【问题描述】:

我正在尝试执行此查询,但出现错误“未定义索引: lname”。我想从表 a 的一列(fname)中计算行数 从其他表中选择列(lname) b。所以请帮助我。

    $result = mysql_query("SELECT COUNT(fname),lname FROM a,b");
    while ($row = mysql_fetch_array($result))
    {
      echo "<tr><td>";
      echo $row['lname'];
      echo "</td>";
      echo "<td>";
      echo $row['COUNT(fname)'];
      echo "</td></tr>";
    }

【问题讨论】:

  • ab 是如何相互关联的?我认为你不需要在这里使用COUNT
  • 顺便说一句,mysql_* 函数已被弃用。

标签: php mysql


【解决方案1】:

如果仍然出现错误,您可以尝试分别获取两者:

$result = mysql_query("SELECT COUNT(fname) FROM a");
while ($row = mysql_fetch_array($result))
  {
    echo "<tr><td>";
    echo $row['COUNT(fname)'];
    echo "</td></tr>";

  }

$result1 = mysql_query("SELECT lname FROM b");
while ($row = mysql_fetch_array($result1))
    {
      echo "<tr><td>";
      echo $row['lname'];
      echo "</td></tr>";
   }

【讨论】:

  • 对不起,但我不明白这个答案如何解决原始问题,(据我所知)试图显示所有 lname 以及它们出现的频率。
【解决方案2】:

您需要使用别名。使用这个:

$result = mysql_query("SELECT COUNT(fname) AS countfname,lname FROM a,b");
while ($row = mysql_fetch_array($result))
{
  echo "<tr><td>";
  echo $row['lname'];
  echo "</td>";
  echo "<td>";
  echo $row['countfname'];
  echo "</td></tr>";
}

【讨论】:

    【解决方案3】:

    试试这个代码:

    $result = mysql_query("SELECT COUNT(a.fname) as fname,b.lname as lname FROM a,b");
    while ($row = mysql_fetch_array($result))
    {
      echo "<tr><td>";
      echo $row['lname'];
      echo "</td>";
      echo "<td>";
      echo $row['COUNT(fname)'];
      echo "</td></tr>";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多