MySQL「 Every derived table must have its own alias」错误修复方法

HiJiangChuan · · 965 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

![MySQL「 Every derived table must have its own alias」错误修复方法](https://kalacloud.com/static/ad5bd2fa8963abc4ce481a2c19c228d6/ef245/head.jpg) 本文首发:《[MySQL「 Every derived table must have its own alias」1248 错误修复法](https://kalacloud.com/blog/what-is-the-error-every-derived-table-must-have-its-own-alias-in-mysql/)》 在写带有子查询或者在查询时产生临时表的查询时,可能会出现这个错误: ``` ERROR 1248 (42000): Every derived table must have its own alias ``` 意思是「每一个派生出来的表都必须给它命名一个自己的别名」 我们看个例子: 假设有一张「顾客购买记录」的表 - `kalacloud_purchases` 记录了顾客在商店购物的信息。我们要写个查询,查看哪些客户在多个商店买过东西: ``` SELECT DISTINCT customer_id, SUM(1) FROM ( SELECT DISTINCT customer_id, store_id FROM kalacloud_purchases) GROUP BY customer_id HAVING 1 < SUM(1); ``` ![every-derived-table-must-have-its-own-alias 1248 错误](https://kalacloud.com/static/96397bbd4b8f8fef4cc0a9f2b1c4c774/b2b2c/01-every-derived-table-must-have-its-own-alias.png) 运行后,可以看到出现 1248 错误:`Every derived table must have its own alias` 在这段报错代码中: ``` FROM ( SELECT DISTINCT customer_id, store_id FROM kalacloud_purchases) ``` 这段命令会先查 `kalacloud_purchases` 表,然后生成一张新的临时表,如果这个临时表没有命名,就会导致 1248 错误。我们只需要加上 「as 临时表别名」即可修复错误 ![添加别名,修复1248 错误](https://kalacloud.com/static/d76dfdfba409a4337a0af6f2812fa86e/ed8a2/02-alias.png) 加上「AS customer」别名, 这样就解决了这个问题。 ## 使用「卡拉云」搭建数据看板 我们可以在命令行中直接执行 SQL 对需要的数据进行查询,不过有时候一些运营数据,分析数据需要周期性的反复查询,总是复制粘贴代码非常麻烦。有时我们还需要和各部门协同,将查询好的数据分享给合作组。这种场景下,你可以试试卡拉云。 卡拉云可以快速搭建数据看板和数据后台,只要你会写 SQL ,完全不用懂前端也可在 5 分钟内搭建一套根据自己需求设计的数据看板,还可以做成数据查询系统,一键分享给协作组的同学使用,再也不用担心自己沦为人肉查询机。 ![使用卡拉云轻松搭建企业内部工具](https://kalacloud.com/5400a60956e16d655e0297c5d6e5a8d2/98-kalacloud-gif.gif) 卡拉云不仅可以像命令行一样灵活,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。**数月的开发工作量,使用卡拉云后可缩减至数天。** ![卡拉云可一键接入常见的数据库及 API](https://kalacloud.com/static/18822b2a23183deb7d11dd484a7f65aa/71c1d/97-kalacloud-sql.png) 卡拉云可快速接入的常见数据库及 API,可根据公司工作流需求,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据,仅需拖拽一键生成前端代码,简单一行代码即可映射数据到指定组件中。 ![搭建数据看板,直接导出数据](https://kalacloud.com/static/f5669b9993d738a2c3b4d4a72419ae85/d3e24/96-kalacloud-list.jpg) 卡拉云可直接添加导出按钮,导出适用于各类分析软件的数据格式,方便快捷。 下图为使用卡拉云在 5 分钟内搭建的「[优惠券发放核销](https://kalacloud.com/blog/coupon-system-design/)」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。 ![使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台](https://kalacloud.com/static/34625d3adaea4ed250ff3f05b863e47c/cca35/99-kalacloud-sql-index.png) 立即开通[卡拉云](https://kalacloud.com/?utm_medium=register),搭建属于自己的数据后台工具吧。 有关 MySQL 教程,可继续拓展学习: - [如何远程连接 MySQL 数据库,阿里云允许外网连接教程](https://kalacloud.com/blog/how-to-allow-remote-access-to-mysql/) - [MySQL 时间戳用什么类型 - MySQL 时间函数详解](https://kalacloud.com/blog/difference-between-mysql-datetime-and-timestamp-datatypes/) - [MySQL 中如何实现 BLOB 数据类型的存取,BLOB 有哪些应用场景?](https://kalacloud.com/blog/how-to-use-the-mysql-blob-data-type-to-store-images-with-php-or-kalacloud/) - [如何在 MySQL / MariaDB 中跳过多张表导出或指定多张表导出备份](https://kalacloud.com/blog/how-to-dump-database-and-ignore-or-specific-some-tables-with-mysqldump-in-mysql/) - [MySQL 触发器的创建、使用、查看、删除教程-六种情况实战](https://kalacloud.com/blog/how-to-manage-and-use-mysql-database-triggers/) - [如何将 MySQL / MariaDB 的查询结果保存到文件](https://kalacloud.com/blog/how-to-save-mysql-mariadb-query-output-to-a-file/) - [MySQL 分组查询实战 如何查询每组最第一条、最后一条记录,单多字段查询、分组筛选、最大小值排序](https://kalacloud.com/blog/how-to-group-by-find-first-and-last-record-in-mysql/)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

965 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传