솔직히 말해서이 질문은 숙제입니다.하지만 시간을 낭비했습니다. 잘못된 숫자의 결과 또는 잘못된 데이터를 반환합니다.SQLite A OR B에 속한 사람
적어도 5 회 이상 동영상을 연출하거나 연기 한 사람과 그들이 한 행동의 횟수에 관련된 모든 사람을 선택해야합니다.
는 movie_id
person
및 person_id
및 (pid
및 name
)와 movie_id
및 person_id
, directs
와 acts
테이블있다. 내가 함께 왔어요 무엇
입니다 : 기본적으로
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
을 위해 같은 일을하는 동안 directs
테이블은 두 테이블에서 person_id
일치. 문제는 두 번째 쿼리의 결과가 포함되어 있지 않다는 것입니다. (10 개의 영화가있는 Alfred Hitchcock이 처음부터 나를 괴롭혔습니다.)
저는 sqlite를 사용하고 있습니다. 누군가가 올바른 방향으로 푸시를 줄 수 있다면 매우 행복 할 것입니다. 나는 집계 된 서브 쿼리를 피하도록 지시 받았다. 나는 그들을 사용하는 해결책이 있었지만 실행하는데 15 분이 걸렸다.
'UNION'에 대해 알고 있습니까? –
나는 모든 감독이 연출 및/또는 연기에 관여했기 때문에 디렉션 d의 UNION SELECT d.pid, d.mid로 시도했다. 그러나, 두 번째 조인 바꾸기, 나는 그런 열을 a.mid 오류가 발생합니다. –