1

我有一个包含两列“id”和“布局计划”的表

我需要查看所有具有相同布局计划的行

我使用这个查询。

select * 
from project_layout 
group by layout_plan 
having count(layout_plan) > 1

但是这个查询只返回第一行。

我想查看所有具有相同布局计划的组。

4

3 回答 3

9

如果您使用未分组且没有聚合的列,则 MySQL 以外的数据库会出错。但是 MySQL 将从组的行中返回一个不确定的值。

要检索layout_plan多于一行的组中的所有行,您可以使用:

select  *
from    project_layout
where   layout_plan in
        (
        select  layout_plan 
        from    project_layout 
        group by 
               layout_plan 
        having 
               count(*) > 1
        )
于 2013-02-08T10:00:05.407 回答
2

尝试这个,

select * from project_layout 
where layout_plan in (select layout_plan   
            from project_layout    
            group by layout_plan   
            having count(layout_plan) > 1)
于 2013-02-08T10:02:41.150 回答
1
Select  a.*
from    project_layout
        INNER JOIN 
        (
            select  layout_plan 
            from    project_layout 
            group   by  layout_plan 
            having  count(layout_plan ) > 1
        ) b ON a.layout_plan = b.layout_plan

为了获得更快的性能,请添加一个indexon 列layout_plan

于 2013-02-08T10:01:28.373 回答