这是我的PHP数据库结构:http://pastebin.com/x89AdzfS
我已经花了好几个小时来使用PDO来获取JOIN SQL查询但是失败了,所以我需要一些帮助。
我需要一个PDO查询,显示分配给学生也注册的班级ID的所有“作业”(标题和说明)。
如果您需要我更具体,请告诉我。谢谢!
修改
这是我所做的一个查询,它显示了一个人所在的课程
$sql = $db->prepare("SELECT enrollments.*, courses.*, students.* FROM enrollments
LEFT JOIN courses ON enrollments.course_id = courses.id
LEFT JOIN students ON students.id = enrollments.student_id
WHERE enrollments.student_id = ?
");
$sql->execute(array($login_id));
while($row = $sql->fetch(PDO::FETCH_ASSOC))
{
echo "<li><a href='class.php?id=".$row['course_id']."'><i class='icon-book'></i>".$row['name']."</a></li>";
}
答案 0 :(得分:2)
这是一个相对简单的联接来完成我认为你想要的。
$sql = $db->prepare("SELECT
title,
description,
courses.name
FROM assignments
JOIN courses ON courses.id = assignments.course_id
JOIN enrollments USING(course_id)
WHERE enrollments.student_id = ?");
$sql->execute(array($login_id));
我对查询的思考过程如下:
与您的查询(我认为)的不同之处在于使用您的绝对目标实体作为原始FROM表,然后从那里加入。如果您想要分配,查询应该以{{1}}开头,然后使用连接来提取您需要用来限制结果的数据。