你能帮我吗?我花了大约2个小时来了解问题所在,但仍然没有。
SQLSTATE [42S21]:列已存在:1060重复的列名
'ID'
select count(*) as aggregate
from (
select `cities`.*,
`cities`.`id` as `id`,
`cities`.`country_id` as `country_id`,
`cities`.`name` as `name`,
`cities`.`alias` as `alias`,
`cities`.`active_frontend` as `active_frontend`
from `cities`
where (
cities.alias in (
select `alias`
from `cities`
group by `alias`
having COUNT(`alias`) > 1
)
)
) count_row_table
请不要问我到底是怎么回事。该查询的最大部分由Laravel生成。
如果我删除此部分:
哪里
(cities.alias IN(从
alias
GROUP BY cities
中选择alias
COUNT(
alias
)> 1))会的。但是我需要这部分。
最佳答案
问题出在cities.*
上。
但是您可以将查询简化为:
select sum(cnt) as cnt
from (
select COUNT(alias) as cnt
from cities
group by alias
having COUNT(alias) > 1
) t
并避免重新读取表,因为最后,您所需要的就是别名超过一行的总行数。
关于mysql - 使用聚合,子查询和分组查询不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46328433/