为何未触发‘Not unique table/alias’错误?派生表字段引用咨询
问题解答
- 占位符处应填写
t.id,这个t对应的是你定义的派生表,而原表必须通过test_db.t来明确指定。
具体解释
在当前USE test_db;的上下文里,原表t本来可以用t或test_db.t两种方式引用,但因为你给派生表也起了别名t,数据库会优先将无库名前缀的t指向FROM子句中后声明的派生表,而带库名的test_db.t则固定指向原表。
所以展开后的完整SQL是:
SELECT test_db.t.id, t.id FROM t, (SELECT * FROM test_db.t) as t;
这样就能分别获取原表和派生表的id字段,不会产生歧义。
内容的提问来源于stack exchange,提问作者Mr.black
相关产品推荐
相关产品推荐

