2016-04-09 12 views
0

私はこのようにSQLに新しいです。ここに私の2つのテーブルがあります。SQLのシンプルなJOIN

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 |    | 
+------------+-------------+------+-----+---------+----------------+ 

ここでここで

ERROR 1052 (23000): Column 'id' in field list is ambiguous 

は、私がここで間違って何をやっている、私はエラーとして何を得るのです

mysql> SELECT id, given_name, family_name FROM persons, courses WHERE courses.teacher_id = persons.id; 

、私の簡単な文を登録しよう。どんな助けもありがたい。あなたはもちろんのIDや人のことをしたい場合

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; 

が依存:

+0

あなたは何を望みますか? persons.idまたはcourses.id? –

+0

あなたはどんな結果が期待されますか? idは両方のテーブルにあり、暗黙的な結合を行っています。エイリアスなしでは、IDを選択しているためエラーになります。 –

+0

あなたの 'JOIN文 'の' JOIN'はどこですか? – Daniel

答えて

1

あなたは、次のようにクエリを変更する必要があります。

0

教師とその人の関係を作成するために、教師の外部キーを人のテーブルに含めます。 など。多くの生徒は先生によって教えられます