【问题标题】:How to retrieve data from multiple table having same column name如何从具有相同列名的多个表中检索数据
【发布时间】:2017-03-27 07:26:53
【问题描述】:

我需要帮助。 我很清楚(Google/stackoverflow)上有类似的问题,我从中获得了很多信息,帮助我继续前进,但我被困在某个地方,我认为是“在哪里”声明。似乎我不明白没错,这就是这篇文章的原因。

我需要从许多具有相同列名的表中获取数据。 下面是我到目前为止写的代码。

$result = $connection->query("select price.ID as id1, price.ID as id2 from tbladventure, tblafrica where price>='$pricefrom' and price <='$priceto'");

for ($i = 0;$i<$result->num_rows;$i++){
$row = $result->fetch_array(MYSQLI_NUM);
      echo $row['id1']."<br>";
      echo $row['id2']."<br>";
}

下面是网页界面

enter image description here

【问题讨论】:

  • 你是怎么做到的?因为我输入了 3 空格键,但对我不起作用。在代码应答器中插入代码的简单方法是什么?谢谢。
  • 您应该只需要在每行之前有两个空格,并且在代码之前和之后还需要一个空行。 (最后一部分让我有时)
  • 谢谢。下次会这样做
  • 实际上很抱歉,每行前似乎有 4+ 个空格。这可以解释为什么你的 3 以前没有这样做。
  • 谢谢。没问题

标签: php mysql sql sql-server mysqli


【解决方案1】:

在 where 条件下使用tablename.columnname

$result = $connection->query("select price.ID as id1, price.ID as id2 from tbladventure, tblafrica where tbladventure.price>=".$pricefrom." and tblafrica.price <=".$priceto);

【讨论】:

  • 我试过了,但还是不行。确实,“pricefrom”和“priceto”必须用于两张表(tblafrica 和 tbladventure),但您的帖子看起来不像那样。
【解决方案2】:
select price.ID as id1, price.ID as id2 from tbladventure, tblafrica where price>='$pricefrom' and price<='$priceto'

在您的选择中,第一个 ID 应来自“价格”表。 第二个 ID 应该来自表“价格”。 问:你为什么要这样做?

然后,您使用“tbladventure”和“tblafrica”,但没有从这些表中选择任何行。

您的要求似乎很糟糕:您究竟需要做什么?

请求返回什么?有什么错误信息吗?

【讨论】:

  • 感谢大家的帮助。我在第一篇文章中添加了设计结构的图片。过程如下:如果用户选择“无类别”并输入价格范围(从/到),程序必须从所有表(所有类别)中检索所有输入的价格范围。请注意,每个表都有一个名为“价格”的列。因此程序必须从所有类别中获取可能输入范围内的所有“价格”列。
  • 选择 mytable1.price 作为 price1,mytable2.price 作为 price2,mytable3.price 作为 price3 FROM mytable1, mytable2, mytable3 WHERE (mytable1.price>='$pricefrom' AND mytable1.price ='$pricefrom' AND mytable2.price ='$pricefrom' AND mytable3.price
  • @user3801953 没有“价格”表。价格是每个表中的一个列(tbladventure 和“tblafrica”)。请我在第一篇文章中添加网页设计的图片。
  • @user3801953 "select 'column_name' " 实际上在“select”语句中没有选择表。你的例子让我感到困惑,因为我的意思是到处都有“mytable1/2/3”(从mytable1/2/3中选择mytable1/2/3 ...。那么“列名”在哪里,“表的名称”在哪里???
  • 感谢您的回复。它似乎有效,但它给了我很多结果,并且 ">=" / "echo "*".$row["0"]."<br>"; 显示结果对吗?还是我错过了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多