sql - JOIN 命令的问题

标签 sql database join

嗨,堆栈溢出的新人,所以如果我没有正确地呈现这一点,我很抱歉。

我使用过 Google、W3schools 并阅读了 SQL 上的 FQA。

我正在 WAMP2.0 中使用 SQL 命令行运行 SQL。我目前正在做一个项目,目标是创建一个最小的大学数据库。包含学生、成绩、类(class)、模块等

任务之一是列出所有学生、模块和相应的成绩。为此,我尝试使用 JOIN 命令从学生表中选择所有姓名,以及记录表中的所有相应模块 + 成绩。

+------------+-------+------------+-----------------+
| Student_id | Name  | DOB        | Address         |
+------------+-------+------------+-----------------+
|    4665236 | Paddy | 1985-09-18 | 123 Fake Street |
|    5665236 | Paul  | 1984-06-12 | Good manlane    |
|    6665236 | John  | 1984-03-09 | Docotor town    |
|    7665236 | Aidan | 1983-07-09 | Banker worlds   |
|    8665236 | Joe   | 1983-07-09 | 24 hitherwood   |
+------------+-------+------------+-----------------+

+------------+--------+------+-------+
| Student_id | Mod_id | GPA  | Grade |
+------------+--------+------+-------+
|    4655236 |   2222 | 3.84 | A-    |
|    5655236 |  11111 | 3.44 | B+    |
|    6655236 |  33333 | 3.24 | B     |
|    7655236 |  44444 | 2.45 | C-    |
|    8655236 |  44444 | 2.45 | C-    |
+------------+--------+------+-------+

学生表中的主键是 Student_id INT 11

记录的主键是(Student_id,Mod_id)

单独的 SELECT FROM 语句在两个表上都可以正常工作。

使用时出现问题

SELECT students.Name, records.Grade
FROM students
INNER JOIN records
ON students.Student_id=Student_id
ORDER BY students.Name

我收到以下错误

ERROR 1052 (23000): Column 'Student_id' in on clause is ambiguous

感谢您对我尝试过的快速响应

SELECT students.Name, records.Grade FROM students INNER JOIN records ON students.Student_id=records.Student_id ORDER BY students.Name;

得到了 ---- 空集(0.00 秒)?

最佳答案

您必须使用别名(例如 records.studentId)对该列 Student_Id 进行限定,以便它在 ON 中不会出现歧义子句,或:

SELECT s.Name, r.Grade
FROM students AS s
INNER JOIN records AS r ON s.Student_id= r.Student_id
ORDER BY s.Name

关于sql - JOIN 命令的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15434929/

相关文章:

java - 您如何正确关闭 JDBC 连接以供重用?

php - 发布动态输入并插入 MySQL 数据库

c# - 如何使用 LINQ 从没有主键的表中插入/更新/删除记录

mysql - SQL JOIN,用值替换 id

mysql - 当我尝试在sequel pro 中运行此查询时出现错误

sql - 如何在 Django 中执行 "greatest-n-per-group"查询?

java - 错误 : extra data after last expected column When trying to inserting csv file

java - MySQL JDBC 语句问题

mysql - 在 MySQL 中创建 View 时,可以在该 View 上运行更新命令吗?

php - 如何将数组分配给sql查询的变量