MYSQL 子查询

原创 2015年11月21日 09:42:59
 MYSQL 子查询

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

 (2011-10-09 13:09:25)
标签: 

宋体

 

别名

 

嵌套查询

 

派生表

 

进行

 

杂谈

分类: 计算机

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)



select   *   from
table1   
left   join   table2   on   条件1   
left   join   table3   on   条件2   
left   join   table4   on   条件3  
where   条件4

SELECT a.*,(@rownum:=@rownum+1AS forder
FROM mytable a,(SELECT @rownum:=0) b
ORDER BY ftype ASC,fnum ASC

相关文章推荐

MySQL在字段中使用select子查询

前几天看别人的代码中看到在字段中使用select子查询的方法,第一次见这种写法,然后研究了一下,记录下来 大概的形式是这样的: select a .*,(select b.* from b where...

mysql 5.1与5.6 子查询性能对比

今天下午想mysql 5.1与5.6子查询性能,发现性能差距是相当大 本测试是基于两台一样的虚拟机,通过对其中一台clone来创建的虚拟机。 源表数据使用sysbench生成50000条数...

Mysql子查询、UNION操作

子查询: 1.WHERE型子查询 指把内层查询的结果作为外层查询结果的比较条件。 例如:我们查询一个货物id的最大的那一个值可以通过order by来查询,如: 那么,如果不能用order...

mysql 通过子查询实现两列相除

摘要:催收系统中有个根据前一天催收回单率排序的sql,其中:前一天催收回单率=前一天催收回单量/前一天的全部回单量,下面是对应的SQL语句: 一:查询前一天的回单量: SELECT coun...

mysql in 子查询 效率慢 优化(转)

现在的CMS系统、博客系统、BBS等都喜欢使用标签tag作交叉链接,因此我也尝鲜用了下。但用了后发现我想查询某个tag的文章列表时速度很慢,达到5秒之久!百思不解(后来终于解决),我的表结构是下面这样...

mysql 数据库学习笔记 3 外键 和 select 子查询

1. 外键 如果一个实体 student 的某个字段 classid 指向(引用) 另一个实体的主键 classid, 我们就称 student 实体的 classid 为外键。 被指向的实体, 我们...

MySQL多表连接,子查询

今天两个面试都遇到数据库问题,有些遗忘,所以建表测试下 连接时必须使用on指明多表连接时相等的字段,否则报错统计除了高数之外的每个课程人数,平均分。使用group by之后用having来筛...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MYSQL 子查询
举报原因:
原因补充:

(最多只允许输入30个字)