首页 > 数据库 >MySQL Error Code: 1248. Every derived table must have its own alias

MySQL Error Code: 1248. Every derived table must have its own alias

时间:2022-10-24 10:47:21浏览次数:52  
标签:code SQL enterprise derived project Code MySQL sc SELECT

在MySQL中执行SQL语句时,提示该错误(Error Code: 1248. Every derived table must have its own alias)。

这句话的意思是说每个派生出来的表都必须有一个自己的别名。嵌套查询的时候子查询出来的结果是作为一个派生表来进行上一级的查询的,所以子查询的结果必须要有一个别名。

执行的SQL语句为:SELECT COUNT(*) FROM (SELECT * FROM blacklist WHERE nId > 0 LIMIT 10)

把SQL语句改为:SELECT COUNT(*) FROM (SELECT * FROM blacklist WHERE nId > 0 LIMIT 10) AS CNT;

这样就可以了!

但实际上我出现这个错误的问题并不是上面的原因。花了许多时间发现的问题却是开发编程更改代码不细致造成的。生成后的SQL语句如下:

SELECT
	count( 0 ) 
FROM
	(
	SELECT
		sc.*,
		project.project_status AS project_status,
		a.enterprise_name AS owner_name,
		b.enterprise_name AS contractor_name,
		sum( pay.money ) AS return_fund_amount 
	FROM
		((((
						sale_contract sc
						JOIN project ON ((
								sc.sale_code = project.sale_code 
							)))
					JOIN payment_collection_situation pay ON ((
							sc.sale_code = pay.sale_code 
						)))
				JOIN enterprise a ON ((
						sc.owner_party_id = a.enterprise_code 
					)))
			JOIN enterprise b ON ((
					sc.contractor_party_id = b.enterprise_code 
				))) 
	WHERE
		1 = 1 
		AND b.enterprise_name LIKE concat( '%', '烦', '%' ) 
	) 
GROUP BY
	sc.sale_code,
	project.project_status 
ORDER BY
	project.project_status DESC,
	sc.retent_date ASC,
	sc.accept_date DESC 
	) tmpTable

  由于上面的SQL语句是由MyBatis生成的动态语句,经过分析发现是嵌套的SQL语句出现了语法错误,在WHERE子句部分有错误,多余了一个括号,而这个括号是在MyBatis的XML描述中编写错误造成的。主要还是由于编写代码修改不细致造成的。

标签:code,SQL,enterprise,derived,project,Code,MySQL,sc,SELECT
From: https://www.cnblogs.com/xupeixuan/p/16820699.html

相关文章

  • vscode设置垂直长度辅助线 视觉限制长度
    command+,进去搜索rules点击下方的settings.jsoncommand+shift+p搜索editor.rulers或者直接在底部添加如下内容"editor.rulers":[120]如果修改......
  • 如何用vscode调试远程服务器pymarl框架代码
    前言pymarl是多智能体强化学习算法在星际争霸II游戏上的一个框架,之前都是用pycharm调试,后面想用vscode,就去了解了下。配置在vscode里面点击运行,然后点击添加配置。......
  • Atcoder补题计划
    ◉ABC274F-Fishing//枚举作为左端点的鱼//每条鱼有一个在这个区间中的时间段//计算出与长度为a的区间有交集的时间的区间的权值的最大值//时间的区间(离散化......
  • MySQL的锁机制和加锁原理
    首先对mysql锁进行划分: 按照锁的粒度划分:行锁、表锁、页锁按照锁的使用方式划分:共享锁、排它锁(悲观锁的一种实现)还有两种思想上的锁:悲观锁、乐观锁。InnoDB中有几种......
  • Oracle数据库在语法上与MySQL的不同点
    0.不区分大小写Oracle数据库是不区分大小写的1.分页查询实现MySQL分页查询的实现是使用limit关键词,但是在Oracle中没有limit这个关键词,取而代之的是rownum,用法如下:se......
  • D - Robot Arms 2 -- ATCODER
    D-RobotArms2题目:https://atcoder.jp/contests/abc274/tasks/abc274_d参考:https://zhuanlan.zhihu.com/p/576281206 分析dfs或者bfs最大复杂度2^1000,超时......
  • Codeforces Round #830 C1. Sheikh(Easy version)
    题意给定一个长为\(n\)的非负整数序列\(\{a_n\}\),求\(l,r\)使\(f(l,r)=\text{sum}(l,r)-\text{xor}(l,r)\)最大,若答案不唯一,使\(r-l\)尽可能小,若仍不唯一,输出任意答案。......
  • 剑指 Offer 56 - I. 数组中数字出现的次数 - 力扣(LeetCode)
    剑指Offer56-I.数组中数字出现的次数-力扣(LeetCode)一个整型数组nums里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复......
  • Codeforces Round #747 (Div. 2) D Educational Codeforces Round 115 D
    D.TheNumberofImposters显然我们对于每一个关系就相当于连一个无向边我们显然对于每一个连通块来讲我们确定其中一个也就确定了这个连通块里的所有就相当于二分图......
  • 剑指 Offer 48. 最长不含重复字符的子字符串 - 力扣(LeetCode)
    剑指Offer48.最长不含重复字符的子字符串-力扣(LeetCode)思路:最长子串要么包括最后一个字符,要么不包括最后一个字符。我们可以设长度为i的包含最右侧字符的最长的串......