如何解决-错误-字段列表中的“refname”列不明确?

qco9c6ql  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(310)

我想根据 RefNamee05c% 性格。但为什么信息显示 RefName 字段内列表不明确?
下面是我的代码:

DROP TABLE  IF EXISTS TotalZSummary;
 CREATE TABLE TotalZSummary

 SELECT RefName,
        COUNT(CellName) AS CellCount,
        SUM(CellCount*Z_perInst) AS SumZ,
 FROM find_interface c LEFT JOIN
      stdCellVariant v 
     ON c.RefName = v.RefName
 WHERE RefName LIKE 'e05c%'
 GROUP BY RefName;

这是我的新代码:

DROP TABLE  IF EXISTS TotalZSummary;
CREATE TABLE TotalZSummary

SELECT
c.RefName,
COUNT(c.CellName) AS CellCount,
SUM(c.CellCount*v.Z_perInst) AS SumZ,
FROM `find_interface` c
LEFT JOIN `stdCellVariant` v ON c.RefName=v.RefName
WHERE c.RefName LIKE 'e05c%'
GROUP BY c.RefName
;

显示的错误是错误-您的sql语法有错误;检查与mysql服务器版本相对应的手册,以获得使用“from”附近的正确语法 find_interface c左连接 stdCellVariant v on c.refname=v.refname wher'在第1行。

nmpmafwu

nmpmafwu1#

每当查询中有多个表时,请限定列引用!

SELECT c.RefName, COUNT(c.CellName) AS CellCount, 
       SUM(v.CellCountZ_perInst) AS SumZ, 
       SUM(v.CellCountUV1_TxTotZ) AS SvtZ, 
       SUM(v.CellCountNOM_TxTotZ) AS NomZ,
       SUM(v.CellCountUV2_TxTotZ) AS HvtZ
FROM find_interface c LEFT JOIN
     stdCellVariant v
     ON c.RefName = v.RefName
WHERE c.RefName LIKE 'e05c%'
GROUP BY c.RefName ;

我猜其他专栏都是从 stdCellVariant .

jutyujz0

jutyujz02#

本部分:

WHERE RefName LIKE 'e05c%'
GROUP BY RefName

你的参考资料 RefName 列,但是 RefName 是表中的一列 find_interface 在table上 stdCellVariant . 即使您已经说过它们必须匹配,所有对可能重复的列的引用都需要以表名或别名作为前缀:

WHERE C.RefName LIKE 'e05c%'
GROUP BY C.RefName

同样在本例中,当您使用 LEFT JOIN ,使用 C 或者 V 因为别名会有完全不同的效果。试试看!
从您的版本:

SUM(c.CellCount*v.Z_perInst) AS SumZ, -- here!
FROM `find_interface` c

去掉前面的逗号 FROM ,因为您没有列出任何其他要选择的列。

相关问题