本文首发:《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 教程,可继续拓展学习: