嘿伙计们,我实际上是 mysql 的新手..我写了两种类型的代码,
第一种类型
select ID,
(select n.NAME from CUSTOMERS as n group by SALARY ) as m
from CUSTOMERS;
第二种类型
select ID,
from (select n.NAME from CUSTOMERS as n) as m
group by SALARY;
第一个按我的预期工作正常,但第二个没有..它抛出了类似的错误
“字段列表”中的未知列“ID”:从(从 CUSTOMERS 中选择 NAME)中选择 ID 作为 m 组(按薪水)
所以问题是第二种方法可以在mysql中完成而实际上没有任何错误吗?
希望你们能帮助我..Thx
最佳答案
您的第二个失败,因为您从没有 ID
的子查询请求列 ID
:
select ID,
from (select n.NAME from CUSTOMERS as n) as m
group by SALARY;
它只有名称
。如果您希望在主查询中使用 ID
和 SALARY
,则需要将它们添加到子查询中。
select ID,
from (select n.ID, n.SALARY from CUSTOMERS as n) as m
group by SALARY;
正如@Strawyberry 指出的那样……这是无稽之谈。您正在按不在您的 SELECT 子句中的字段进行分组...我不知道。您还对不需要子查询的内容进行子查询。只要这样做:
select m.ID,
from CUSTOMERS as m
group by m.SALARY;
关于Mysql子查询差异错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26678778/