簡體   English   中英

帶表別名的MySQL Workbench 1146錯誤

[英]MySQL Workbench 1146 error with table alias

我在工作台中有這段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 `Π`.`ΠΩΛΗΣΕΙΣ`);

第6行中存在問題。MySQLWorkbench無法識別表別名“Π”,因此引發錯誤:

錯誤代碼:1146。表'π.πωλησεισ'不存在。

我能做什么?

這是因為Π是派生表,而不是永久表,因此您不能像普通表一樣在WHERE子句中使用它。 而是在外部查詢中包含MAX()計算。 如下更改查詢

  SELECT `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`, `ΠΩΛΗΣΗ`
   FROM
    (
    SELECT `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`, 
    `ΠΩΛΗΣΗ`,
    SUM(`ΠΟΣΟΤΗΤΑ`) AS `ΠΩΛΗΣΕΙΣ`
     FROM `hospital`.`προιοντα`, `hospital`.`χρεωσεις_περιστατικων`
     WHERE `hospital`.`προιοντα`.`ΚΩΔΙΚΟΣ_ΠΡΟΪΟΝΤΟΣ` = 
    `hospital`.`χρεωσεις_περιστατικων`.`ΚΩΔΙΚΟΣ_ΠΡΟΪΟΝΤΟΣ` 
     AND YEAR(`ΗΜ_ΝΙΑ_ΧΡΕΩΣΗΣ`) = 2013
     GROUP BY `ΟΝΟΜΑΣΙΑ_ΠΡΟΪΟΝΤΟΣ`
     HAVING `ΠΩΛΗΣΗ` = MAX(`ΠΩΛΗΣΕΙΣ`)
    ) AS `Π`;

PS:順便說一句,我也不知道MySQL也可以使用Alien Language

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM