原因:两表连接后,有两个同名的属性,不知道select的是哪个表的属性。
下面的所有地址单词都写错了,address写成了adress。
如:
select id from
student_name left join student_adress
on student_name.id=student_adress.id;
解决办法:在要select的属性前加上表名。
这里是将select id
改为select student_name.id
为什么会出现这个错误呢?我们来看看
现在有两个表,一个是student_name
,有id和name(姓名)两个属性,一个是student_adress
,有id和adress(地址)两个属性。两个表都有id1,2,3,如图:
现在对两表进行左连接。
select * from
student_name left join student_adress
on student_name.id=student_adress.id;
从下面的图可以看到,左连接的结果中有两列id
,如果此时select id
,数据库并不知道你要选的是哪列id,所以你要指定选择的是从哪个表来的id,改为select 表名.id
就可以了。
此外,使用右连接(left join)、全连接(full join)、内连接(inner join)通过指定属性进行连接,结果中同样会有两列指定属性。但自然连接(natural join)只会有一列。
要理解各种连接可以参考:通俗理解SQL的连接:左连接、右连接、全连接、内连接、自然连接