「id」と「レイアウトプラン」の2つの列を含むテーブルがあります
同じレイアウトプランを持つすべての行を確認する必要があります
このクエリを使用します。
select *
from project_layout
group by layout_plan
having count(layout_plan) > 1
しかし、このクエリは最初の行のみを返しています。
同じレイアウトプランのグループをすべて表示したい。
「id」と「レイアウトプラン」の2つの列を含むテーブルがあります
同じレイアウトプランを持つすべての行を確認する必要があります
このクエリを使用します。
select *
from project_layout
group by layout_plan
having count(layout_plan) > 1
しかし、このクエリは最初の行のみを返しています。
同じレイアウトプランのグループをすべて表示したい。
集計なしでグループ化されていない列を使用すると、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
)
これを試して、
select * from project_layout
where layout_plan in (select layout_plan
from project_layout
group by layout_plan
having count(layout_plan) > 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
パフォーマンスを高速化するには、 on 列を追加しますlayout_plan