我是SQL的新手,因此问题。这是我的两张桌子。
persons
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| given_name | varchar(30) | NO | | NULL | |
| family_name | varchar(30) | NO | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
courses
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| teacher_id | int(11) | NO | MUL | NULL | |
| name | varchar(30) | NO | | NULL | |
+------------+-------------+------+-----+---------+----------------+
这是我简单的JOIN语句,
mysql> SELECT id, given_name, family_name FROM persons, courses WHERE courses.teacher_id = persons.id;
这是我得到的错误,
ERROR 1052 (23000): Column 'id' in field list is ambiguous
我在这里做错了什么。任何帮助表示赞赏。
答案 0 :(得分:1)
您应该按以下方式更改查询:
SELECT persons.id, given_name, family_name
FROM persons, courses
WHERE courses.teacher_id = persons.id;
或
SELECT courses.id, given_name, family_name
FROM persons, courses
WHERE courses.teacher_id = persons.id;
取决于您是否需要课程的ID或该人的ID。
答案 1 :(得分:0)
在人员表中包含教师外键以创建教师与人之间的关系。 例如。许多学生都是由老师教授的