因此,我尝试在 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/