首页 > 解决方案 > 如何从数据库中的三个表中同时获取数据

问题描述

我想从我的数据库中的三个表中获取数据并将它们显示在网页上。发现了很多类似的问题,但没有一个对我有帮助。这里我的php代码是

<?php

session_start();
include('database.php');

$sql = "SELECT * FROM class8,class9,class10 WHERE teacher_id = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':id', $_SESSION['teacher_id']);

$result = $stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_OBJ)) {

    var_dump($row);
}

?>

从这段代码中我试图获取但它给出了这样的错误


Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'teacher_id' in where clause is ambiguous in C:\xampp\htdocs\kridha\prospectcorse.php:10 Stack trace: #0 C:\xampp\htdocs\kridha\prospectcorse.php(10): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\kridha\prospectcorse.php on line 10

怎么做..??/

标签: phpsql

解决方案


您需要连接表,并在引用多个表中存在的列时指定表名。

SELECT *
FROM class8
JOIN class9 ON class8.teacher_id = class9.teacher_id
JOIN class10 ON class8.teacher_id = class10.teacher_id
WHERE class8.teacher_id = :id

推荐阅读