正直なところ、これは宿題の質問ですが、何時間も無駄になっていて、正しく理解できません。間違った数の結果または間違ったデータを返します。
映画の監督や映画の演技に携わるすべての人と、少なくとも5回の場合は、その回数を選択する必要があります。
aとa 、andと(と)のacts
テーブルがあります。movie_id
person_id
directs
movie_id
person_id
person
pid
name
私が思いついたのは:
SELECT p.name,count(d.mid)+count(a.mid)
FROM person p
INNER JOIN acts a
ON a.pid=p.pid
LEFT JOIN directs d
ON p.pid=d.pid
group by p.pid,p.name
having (count(d.mid) +count(a.mid))>=5
基本的に、私は両方のテーブルのperson
とdirects
一致するテーブルを結合しようとしていますが、についても同じことをしています。問題は、2番目のクエリの結果が含まれていないことです(10本の映画を上映しているアルフレッドヒッチコックが最初から私を悩ませてきました)。person_id
directs
私はsqliteを使用しています。誰かが私に正しい方向へのプッシュを与えることができれば、私はとても幸せです。集約されたサブクエリを回避するようにも指示されました。それらを使用したソリューションがありましたが、実行に15分かかりました。