mysql - 由于 JOINED 表的原因,显示的 SQL 行受到限制

标签 mysql sql join inner-join

我有以下代码来执行 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,还是也可以有空行?

最佳答案

您的查询显示您正在加入 Courses 表中的 id 匹配 Students 中的 Students_Id .但是,该模式让它看起来好像 id 实际上不是学生标识符,而只是该表中的记录索引。在我看来,您需要在 Courses 中增加一列作为 Students 表的键。

I tested the JOIN SQL syntax in phpMyAdmin and while it returns as a positive task, I notice that it only shows the original table and not the joined table after being joined.

请注意,您只告诉查询选择包含在 Courses 表中的列。您可能还想选择 Students.FirstNameStudents.LastName(或类似的东西)。

关于mysql - 由于 JOINED 表的原因,显示的 SQL 行受到限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8794795/

相关文章:

Mysql Group By 查询性能非常慢

mysql - 每个足球俱乐部总得分的百分比

php - 无法使用php和mysql登录

sql - 将 OUTPUT insert.id 与选定行中的值相结合

java - 如何在一个 JPQL 查询中使用多个 JOIN FETCH

mysql - 更新 WordPress 数据库,更改 post_content 硬编码 URL

java - 单行子查询返回多行

sql - 我需要优化我的第一个 T-SQL 更新触发器

具有空白/空值的 MySQL JOIN 不返回任何结果

json - jq 加入公共(public)键