写点什么

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

作者:蒋川
  • 2021 年 12 月 03 日
  • 本文字数:1203 字

    阅读完需:约 4 分钟

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

本文首发:《MySQL「 Every derived table must have its own alias」1248 错误修复法


在写带有子查询或者在查询时产生临时表的查询时,可能会出现这个错误:


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);
复制代码



运行后,可以看到出现 1248 错误:Every derived table must have its own alias


在这段报错代码中:


FROM ( SELECT DISTINCT customer_id, store_id FROM kalacloud_purchases)
复制代码


这段命令会先查 kalacloud_purchases 表,然后生成一张新的临时表,如果这个临时表没有命名,就会导致 1248 错误。我们只需要加上 「as 临时表别名」即可修复错误



加上「AS customer」别名, 这样就解决了这个问题。

使用「卡拉云」搭建数据看板

我们可以在命令行中直接执行 SQL 对需要的数据进行查询,不过有时候一些运营数据,分析数据需要周期性的反复查询,总是复制粘贴代码非常麻烦。有时我们还需要和各部门协同,将查询好的数据分享给合作组。这种场景下,你可以试试卡拉云。


卡拉云可以快速搭建数据看板和数据后台,只要你会写 SQL ,完全不用懂前端也可在 5 分钟内搭建一套根据自己需求设计的数据看板,还可以做成数据查询系统,一键分享给协作组的同学使用,再也不用担心自己沦为人肉查询机。



卡拉云不仅可以像命令行一样灵活,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。数月的开发工作量,使用卡拉云后可缩减至数天。



卡拉云可快速接入的常见数据库及 API,可根据公司工作流需求,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据,仅需拖拽一键生成前端代码,简单一行代码即可映射数据到指定组件中。



卡拉云可直接添加导出按钮,导出适用于各类分析软件的数据格式,方便快捷。


下图为使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。



立即开通卡拉云,搭建属于自己的数据后台工具吧。


有关 MySQL 教程,可继续拓展学习:


发布于: 1 小时前阅读数: 7
用户头像

蒋川

关注

我的微信:HiJiangChuan 2020.09.08 加入

卡拉云 CMO 卡拉云是一套帮助后端程序员搭建企业内部工具的系统,欢迎试用 www.kalacloud.com

评论

发布
暂无评论
MySQL「 Every derived table must have its own alias」1248 错误修复法