sql中使用left join时遇到的一个小问题

来源:赵克立博客 分类: 数据库 标签:SQLmysql发布时间:2018-05-30 11:42:43最后更新:2018-05-30 11:42:43浏览:1373
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-05-30 11:42:43
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

问题描述 

平时写sql时直接就select * from user 没有写具体的字段,相信大多数人都是这样,因为写字段太麻烦,遇是乎就遇到啦下面的一个问题

有一个用户表user如下

id  username  ico

另有一个头像表user_ico

username url

使用下面语句查询结果

select * from user left join user_ico user.username=user_ico.username

使用遍历并且取usename字段数据的时候 居然为NULL。额。找原因,

解决方法

查找原因发现,user表有10条记录,user_ico有3条记录,很明显是有的用户有头像有的没有头像,

然而查出来的字段并没有显式的说明是哪些字段,于是就user表的username和user_ico的username字段都出来啦,而use_ico中的username字段在后面,在使用的时候直接用username取值取的是user_ico.username的值,而他是空的所以就出现啦那个问题

解决方法也很简单如下

select *,user.username as username from user left join user_ico user.username=user_ico.username

最好的还是要哪些字段的数据就直接显式的写出来,效率也会提高


微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python