[英]MySQL Workbench 1146 error with table alias
I have this code of MySQL in workbench 我在工作台中有这段MySQL代码
1. SELECT `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`, `ΠΩΛΗΣΗ`
2. FROM(SELECT `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`, SUM(`ΠΟΣΟΤΗΤΑ`) AS `ΠΩΛΗΣΕΙΣ`
3. FROM `hospital`.`προιοντα`, `hospital`.`χρεωσεις_περιστατικων`
4. WHERE `hospital`.`προιοντα`.`ΚΩΔΙΚΟΣ_ΠΡΟΪΟΝΤΟΣ` = `hospital`.`χρεωσεις_περιστατικων`.`ΚΩΔΙΚΟΣ_ΠΡΟΪΟΝΤΟΣ` AND YEAR(`ΗΜ_ΝΙΑ_ΧΡΕΩΣΗΣ`) = 2013
5. GROUP BY `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`) AS `Π`
6. WHERE `ΠΩΛΗΣΗ` = (SELECT MAX(`ΠΩΛΗΣΕΙΣ`) FROM `Π`.`ΠΩΛΗΣΕΙΣ`);
The problem exists in line 6. MySQL Workbench doesn't recognize table alias "Π", so it throws me the error: 第6行中存在问题。MySQLWorkbench无法识别表别名“Π”,因此引发错误:
Error Code: 1146. Table 'π.πωλησεισ' doesn't exist. 错误代码:1146。表'π.πωλησεισ'不存在。
What can I do? 我能做什么?
That's because Π
is a derived table and not a permanent table and so you can't use it in WHERE
clause like a normal table. 这是因为Π
是派生表,而不是永久表,因此您不能像普通表一样在WHERE
子句中使用它。 rather include the MAX()
calculation in outer query. 而是在外部查询中包含MAX()
计算。 Change your query like below 如下更改查询
SELECT `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`, `ΠΩΛΗΣΗ`
FROM
(
SELECT `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`,
`ΠΩΛΗΣΗ`,
SUM(`ΠΟΣΟΤΗΤΑ`) AS `ΠΩΛΗΣΕΙΣ`
FROM `hospital`.`προιοντα`, `hospital`.`χρεωσεις_περιστατικων`
WHERE `hospital`.`προιοντα`.`ΚΩΔΙΚΟΣ_ΠΡΟΪΟΝΤΟΣ` =
`hospital`.`χρεωσεις_περιστατικων`.`ΚΩΔΙΚΟΣ_ΠΡΟΪΟΝΤΟΣ`
AND YEAR(`ΗΜ_ΝΙΑ_ΧΡΕΩΣΗΣ`) = 2013
GROUP BY `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`
HAVING `ΠΩΛΗΣΗ` = MAX(`ΠΩΛΗΣΕΙΣ`)
) AS `Π`;
PS: BTW, I didn't knew MySQL works in Alien Language
as well. PS:顺便说一句,我也不知道MySQL也可以使用Alien Language
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.