继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕粉4321733
关注TA
已关注
手记 10
粉丝 1
获赞 2

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

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」别名, 这样就解决了这个问题。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP