【发布时间】:2012-01-09 20:32:06
【问题描述】:
我有以下代码来执行 JOINED 表的动态查询,但由于某种原因,每当我尝试显示该行时,它只显示前 9 行然后停止。
$query = "SELECT `results`, `Success`, `Failure`, `Counter`, `Grades`, `Classes`,
`Special_Id`, `SpecialCondition` FROM `Courses` INNER JOIN `Students` ON `id` =
`Students_Id`";
这就是我获取行并显示它们的方式:
<?php
foreach($results as $row){
echo $row['grades'].'<br />';
}
我在 phpMyAdmin 中测试了 JOIN SQL 语法,虽然它作为一个积极的任务返回,但我注意到它只显示原始表,而不是连接后的连接表。
关于我在哪里出错的任何建议?我只显示这部分代码,因为一切正常,当我删除 JOIN 语法时它工作得很好,所以我相信加入是导致问题的原因,但我看不到我在做什么错了。
已编辑以显示 SQL 模式:
当然,希望以下内容有所帮助。
Table: Courses
id (PK)| results | Success | Failure | Counter | Grades | Classes |
1 Posted 1 0 2 B+ 2
2 Pending 0 0 1 NA 1
3 Posted 0 1 3 F 1
4
5
6
7
8
9
10+
Table: Students
Students_Id (PK) | FirstName | LastName |
1 Chris Test
2 Jen Test
3
4
5
6
7
8
9
10+
为了便于阅读,我删除了其他 10 多行中的信息,但其中有数据填充。
另外,我注意到在 OP 中,我选择了“Special_Id 和 SpecialConditions”。这实际上是错误的。我不再选择这些字段。
在连接表时,是否每列都必须有数据才能成功地进行 INNER JOIN 或者也可以有空行?
【问题讨论】:
-
能否将数据库架构添加到问题中?
-
我不确定我是否理解您的架构。课程 1 属于学生 Chris,课程 2 属于 Jen 等等?
标签: mysql sql join inner-join