mysql出现错误“ Every derived table must have its own alias”

http://blog.sina.com.cn/s/blog_5d2eee260100xu8b.html

Every derived table must have its own alias

这句话的意思是说每个派生出来的表都必须有一个自己的别名

一般在多表查询时,会出现此错误。

因为,进行嵌套查询的时候子查询出来的的结果是作为一个派生表来进行上一级的查询的,所以子查询的结果必须要有一个别名

把MySQL语句改成:select count(*) from (select * from ……) as total;

问题就解决了,虽然只加了一个没有任何作用的别名total,但这个别名是必须的

select name1 name, java, jdbc, hibernate,total   from (select sc1.name name1, sc1.mark java    from student_course2 sc1    where sc1.course='java') as a,    (select sc2.name name2, sc2.mark jdbc    from student_course2 sc2    where sc2.course='jdbc') as b,    (select sc3.name name3, sc3.mark hibernate    from student_course2 sc3    where sc3.course='hibernate') as c,  (select sc4.name name4,sum(sc4.mark) total  from student_course2 sc4 group by sc4.name) as d   where name1=name2 and name2=name3 and name3=name4 order by total ASC;

结果正确:

+----------+------+------+-----------+-------+ | name     | java | jdbc | hibernate | total | +----------+------+------+-----------+-------+ | wangwu   |   40 |   30 |        20 |    90 | | lisi     |   70 |   60 |        50 |   180 | | zhangsan |  100 |   90 |        80 |   270 | +----------+------+------+-----------+-------+ 3 rows in set (0.02 sec)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏醉程序

学习笔记 | MySQL 数据类型

1423
来自专栏芋道源码1024

数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(三)之查询SQL

1. 概述 2. SelectStatement 2.1 AbstractSQLStatement 2.2 SQLToken 3. #query() 3.1 ...

4038
来自专栏数据分析

[数据库基础]——索引详解

索引对于接触过数据库的人,都不会很陌生,但是说实话,也不一定很熟悉。先来介绍下索引的优点。 提高性能 现在有一个数据库表[Words],有[WordID],[W...

3566
来自专栏更流畅、简洁的软件开发方式

【查询】查询好像也可以很简单!

     还是要先说一下范围:以数据库为主的程序,b/s结构。      查询嘛,对于我来说就是SQL语句 where 后面(group、order by 前面...

2157
来自专栏跟着阿笨一起玩NET

读取txt正则匹配行写入txt

2231
来自专栏Spark学习技巧

Hive学习之Lateral View

Lateral view与UDTF函数如explode()一起使用,UDTF对每个输入行产生0或者多个输出行。Lateral view首先在基表的每个输入行应用...

3324
来自专栏me的随笔

T-SQL基础(三)之子查询与表表达式

在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询。嵌套在外部查询内的查询称为子查询,子查询的结果集供外部查询使用。

1174
来自专栏me的随笔

T-SQL基础(三)之子查询与表表达式

在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询。嵌套在外部查询内的查询称为子查询,子查询的结果集供外部查询使用。

961
来自专栏乐沙弥的世界

MongoDB 部分索引(Partial Indexes)

a、部分索引就是带有过滤条件的索引,即索引只存在与某些文档之上 b、满足过滤条件的文档在查询时,其执行计划将使用该列上的索引,否则不会被使用 c、稀疏索...

1300
来自专栏marsggbo

MySQL基础入门-第一课 新建数据库(linux版本)

MySQL linux 登录MySQL sudo service mysql start #打开MySQL服务 mysql -u root #使用root...

2115

扫码关注云+社区

领取腾讯云代金券