我有一个包含两列'id'和'layout plan'
的表我需要查看具有相同布局规划的所有行
我使用此查询。
select *
from project_layout
group by layout_plan
having count(layout_plan) > 1
但是这个查询只返回第一行。
我希望看到所有具有相同布局规划的组。
答案 0 :(得分: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
)
答案 1 :(得分:2)
试试这个,
select * from project_layout
where layout_plan in (select layout_plan
from project_layout
group by layout_plan
having count(layout_plan) > 1)
答案 2 :(得分: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
要获得更快的效果,请在列index
layout_plan