mysql里join多个表的疑问。
问题来了,我是从user表开始查的,中间分别join了comment表和topic表,那我通过帖子uid查帖子作者时,又需要从user表查一次username,这次的username指的是发表该帖子的作者用户名,不是一开始传入的username。
mysql一直提示我Column 'username' in where clause is ambiguous
为什么呢…
回复内容:
我要通过用户名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
为什么呢…
连表的是时候查询字段要写清楚属于哪一个表的字段,例如
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的方式
给select 的表 as 一个名称
类似:select * from tmp as t1 left join tmp as t2 on t1.uid=t2.uid
推荐阅读
-
Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法
-
神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(二)
-
MySQL修改表一次添加多个列(字段)及注释、修改字段的注释介绍
-
神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(一)
-
mysql存储过程 巩固(一张表的取多个双色球号码)
-
mysql使用from与join两表查询的区别总结
-
先排序然后union all失效,mysql数据库多个表union all查询并排序的结果为什么错误
-
mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值
-
mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值
-
mysql丢失数据,547个表,300多个表中的数据全没有了?