私はテーブルを持っています
id = 1
name = 'one'
group = 1
id = 2
name = 'two'
group = 1
id = 3
name = 'three'
group = 2
そして、1 つの SQL クエリで単一のすべての名前を取得する必要があります。この場合は id = 3 であり、別の SQL では倍数であるすべての名前を取得する必要があります。選択中の選択である必要があると思いますが、わかりません。
前もって感謝します。
次のようなものを使用したいようです。
select id
from yourtable
group by `group`
having count(`group`) = 1
SQL FiddlewithDemoを参照してください。
次に、すべての詳細を返したい場合は、クエリを次のように展開できます。
select *
from yourtable t1
where id in (select id
from yourtable t2
group by `group`
having count(`group`) = 1)
SQL FiddlewithDemoを参照してください。
同じグループを持つすべての行を返す場合は、次を使用できます。
select *
from yourtable t1
where `group` in (select `group`
from yourtable t2
group by `group`
having count(`group`) > 1)
SQL FiddlewithDemoを参照してください
次に、すべてと、それが単一か複数かを識別するフラグを返したい場合は、これに似たものを使用できます。groups
1つの行があるものと、複数の行があるグループを示すフラグが含まれていることに気付くでしょう。
select *, 'single' Total
from yourtable t1
where `group` in (select `group`
from yourtable t2
group by `group`
having count(`group`) = 1)
union all
select *, 'multiple' Total
from yourtable t1
where `group` in (select `group`
from yourtable t2
group by `group`
having count(`group`) > 1)
SQL FiddlewithDemoを参照してください