私は2つのテーブルがあります。SQL - その親の子の数に基づいて親のすべての行を取得する方法?
- 親テーブル:ID、名前
- 子テーブル:ID、名前、id_parent
さて、私は親テーブルの行を一覧表示したいが、数行を持っているが子供の数は3です。
私は2つのテーブルがあります。SQL - その親の子の数に基づいて親のすべての行を取得する方法?
さて、私は親テーブルの行を一覧表示したいが、数行を持っているが子供の数は3です。
いくつかの方法で実行できます。 HAVING
で、
select *
from parents p
where (select count(*) from children c
where c.id_parent = p.id) = 3
またはGROUP BY
:最も簡単にはおそらく子供の数をカウントするWHERE
句で相関サブクエリである
select p.*
from parents p
join children c
on c.id_parent = p.id
group by p.id
having count(*) = 3
ああ、これは素晴らしい解決策です。ありがとうございます。 Btw、その結果の子供の数を取得したい場合、どのように私はクエリを編集できますか? –
私はこのような私のクエリを編集します。
select p.*, count(c.id)
from parents p
join children c
on c.id_parent = p.id
group by p.id
having count(*) = 3
大丈夫ですか? jarlh
https://stackoverflow.com/help/how-to-ask – jarlh
詳しいことができますか?問題の内容を伝えるのは難しいです。 – pablochan
ようこそスタックオーバーフロー。 [ツアー](https://stackoverflow.com/tour)にアクセスするには、少し時間を取ってください。また、[how-to-ask](https://stackoverflow.com/questions/how-to-ask)を読んであなたの質問のためのより良い答え –