我想要做如下要求我的數據庫:數據庫請求
我尋找誰與他人擔任男主角(作業)在10分鐘的電影togehter工作人員。你有任何提示或建議,我該如何解決這個問題?
- PRODUCTION(生產,標題)
- MOVIE(生產 - >生產,型)
- 人(人,名稱,實名,birth_country)WORKS(人 - >
- PERSON,生產 - >生產作業)
我想要做如下要求我的數據庫:數據庫請求
我尋找誰與他人擔任男主角(作業)在10分鐘的電影togehter工作人員。你有任何提示或建議,我該如何解決這個問題?
這似乎像這類問題更適合像的Neo4j圖形數據庫,但在這裏是一個關係型SQL解決方案:
select w1.person as person1
, w2.person as person2
, count(w1.production) as joint_productions
from works w1
join works w2
on w1.production = w2.production
where w1.person != w2.person
group by w1.person, w2.person having count(w1.production) >= 10
order by w1.person, w2.person;
這顯示了演員和他們在一起的電影數量。它包括的倒數,即
bill murray, dan ackroyd, 10
dan ackroyd, bill murray, 10
如果你只是想將一組名稱,你可以這樣做:
select distinct w1.person
from works w1
join works w2
on w1.production = w2.production
where w1.person != w2.person
group by w1.person, w2.person having count(w1.production) >= 10
order by w1.person;
我可能會發現沒有一個子請求的解決方案。這是對的嗎?
select w1.person as person1, w2.person as person2, p1.name , p2.name, count(w1.production) as joint_productions
from works w1 join works w2 on w1.production = w2.production
join person p1 on w1.person = p1.person
join person p2 on w2.person = p2.person
where w1.person != w2.person
group by w1.person, p1.name, p2.name, w2.person having count(w1.production)
>= 10 order by w1.person, w2.person
嗨Kahoona,你到目前爲止嘗試過什麼? –