1
头图

本文首发:《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);

every-derived-table-must-have-its-own-alias 1248 错误

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

在这段报错代码中:

FROM ( SELECT DISTINCT customer_id, store_id FROM kalacloud_purchases)

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

添加别名,修复1248 错误

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

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

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

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

使用卡拉云轻松搭建企业内部工具

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

卡拉云可一键接入常见的数据库及 API

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

搭建数据看板,直接导出数据

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

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

使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台
立即开通卡拉云,搭建属于自己的数据后台工具吧。

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


蒋川
158 声望14 粉丝