在写带有子查询或者在查询时产生临时表的查询时,可能会出现这个错误:
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」别名, 这样就解决了这个问题。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦