php - mysql里join多个表的疑问。
巴扎黑
巴扎黑 2017-04-10 18:05:36
[PHP讨论组]

我要通过用户名username,查询user表得到此用户ID,通过用户ID查comment表得到此用户全部评论,通过评论中的tid字段查询topic表,获得该评论所在的帖子,通过帖子的uid获得此帖子的作者。

问题来了,我是从user表开始查的,中间分别join了comment表和topic表,那我通过帖子uid查帖子作者时,又需要从user表查一次username,这次的username指的是发表该帖子的作者用户名,不是一开始传入的username。

mysql一直提示我Column 'username' in where clause is ambiguous

为什么呢…

巴扎黑
巴扎黑

全部回复(3)
高洛峰

连表的是时候查询字段要写清楚属于哪一个表的字段,例如
SELECT(a.username,a.id,b.,c.) FROM user AS a
LEFTJOIN comment AS b ON a.id = b.uid
LEFTJOIN topic AS c ON b.tid = c.id

高洛峰

可以贴出sql么,因为你查询了两次user表,如果是一条sql的话,你要分别为这两次的user表定义个别名,不然在where中直接使用username就会报Column 'username' in where clause is ambiguous错误.请在where条件中使用 别名.username的方式

ringa_lee
给select 的表 as 一个名称
类似:select * from tmp as t1 left join tmp as t2 on t1.uid=t2.uid
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号