php - 如何在 SQL 和 PHP 中正确使用 WHERE 和 JOIN

标签 php mysql

因此,我尝试在 PHP 中实现 JOIN,但我不知道如何在查询中包含带有 JOIN 的 WHERE 子句。

我正在尝试做:

SELECT SpecialFacts.ConservationStatus, SpecialFacts.Reproduction, SpecialFacts.Length, Habitat.Type, Habitat.located

FROM SpecialFacts

INNER JOIN Habitat ON SpecialFacts.SpeciesID=Habitat.SpeciesID

WHERE SpeciesID="G. cuvier"

基本上,我试图确保联接发生在 SpeciesID 为 G.cuvier 的表上,但到目前为止我尝试过的所有操作都不起作用,它现在给我的错误是“where 子句中的 Column SpeciesID”是有歧义的”。

这是我的相关 PHP 代码:

<?php 

include 'connect.php';

$result = mysqli_query($connect,"SELECT SpecialFacts.ConservationStatus, SpecialFacts.Reproduction, SpecialFacts.Length, Habitat.Type, Habitat.located FROM SpecialFacts INNER JOIN Habitat ON SpecialFacts.SpeciesID=Habitat.SpeciesID WHERE SpeciesID='G. cuvier'") or die("fail" . mysqli_error($connect));


$i = 0;
while($row = mysqli_fetch_array($result))
{
    echo $row[$i];
    $i = $i + 1;
}

最佳答案

专栏SpeciesID两个表中都存在,因此它不知道哪个需要与 G. cuvier 给出的值进行比较。当您使用点(.)将每个列名写为表名时,where 条件列 SpecialFacts.SpeciesID = "G. cuvier" 中也应如此。 。

所以查询应该是这样的:

SELECT SpecialFacts.ConservationStatus, SpecialFacts.Reproduction, SpecialFacts.Length, Habitat.Type, Habitat.located

FROM SpecialFacts

INNER JOIN Habitat ON SpecialFacts.SpeciesID=Habitat.SpeciesID

WHERE SpecialFacts.SpeciesID="G. cuvier"

关于php - 如何在 SQL 和 PHP 中正确使用 WHERE 和 JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51448766/

相关文章:

php - 为每个结果值显示多行

php - 如何通过一次查询从 3 个不同的 mysql 表中获取数据

php - DB 计数和数组计数之间的性能差异

mysql - 获取MySQL中每个组的top-k

php - 使用不同表中另一行的数据更新行

jquery.ajax() 使用来自 mysql 的 json 数据

PHP 将 30 分钟的增量添加到时间选择菜单

php - 表 'time_zone_name' 未锁定,出现 LOCK TABLES mysql 错误

php - 为什么我的某些表格单元格的填充比其他单元格多?

php - 做一个视频分享网站,需要一个视频播放器