错误:未知列';joinedactivities.searchact id=searchact.id';在&


Error: Unknown column 'joinedactivities.searchact id = searchact.id' in 'on clause'

我一直收到这个错误错误:"on clause"中的未知列"joinedactivities.searchact id=searchact.id"。我已经检查了表名,并尝试更改它,但不断出现错误。

我有桌子:

joinedactivities-id,用户id(外键),searchact id(外键

searchact id,邮政编码,纬度,经度,爱好,场地

我正在尝试显示来自表searchact的行来自外键searchact id。

$user=$_SESSION['id'];
$sql ="SELECT * FROM `joinedactivities` JOIN `searchact` ON `joinedactivities.searchact id = searchact.id` WHERE `user id`=$user "; 
$result = mysqli_query($conn, $sql)or die("Error: ".mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
// output data of each row
  echo "Hobby : " . $row["searchact id"];
}
 } else {
echo "You have not joined any groups";
}

Backticks包含数据库对象。因此,您告诉查询引擎,整个事情是一个单独的对象(在本例中是一列):

`joinedactivities.searchact id = searchact.id`

我认为您没有名为joinedactivities.searchact id = searchact.id的列,因此查询失败。(即使你有一个名为that的列,它仍然是一个不完整的ON子句。)在backticks:中封装单个数据库对象

`joinedactivities`.`searchact id` = `searchact`.`id`

您的backticks不正确:

`joinedactivities.searchact id = searchact.id` 
^--------------------------------------------^

您已经将整个字符串转换为一个标识符。你可能想要更像的东西

`joinedactivities`.`searchact_id` = `searchact`.`id` 

请注意,这些标识符中没有一个是保留字,这意味着根本不需要回溯标记。

您的代码是正确的,但有一个小错误-错误的回溯。使用下方的代码

$user=$_SESSION['id'];
$sql ="SELECT * FROM `joinedactivities` JOIN `searchact` ON `joinedactivities`.`searchact id` = `searchact`.`id` WHERE `user id`=$user "; 
$result = mysqli_query($conn, $sql)or die("Error: ".mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
// output data of each row
  echo "Hobby : " . $row["searchact id"];
}
 } else {
echo "You have not joined any groups";
}

希望这能帮助您