에 조인 나는 영화 카탈로그SQL 다수의 내부는 내가 현재 온라인 유료 컨텐츠를 제공하는 것을 목표 작은 시작에서 프로그래머로 일하고 같은 분야
에 대한 메타 데이터 데이터베이스를 개발하기 위해 할당 된 두 개의 주 테이블 동영상 및 사람이 있습니다. * movie_ID * 및 * people_ID *는 각 테이블의 기본 키입니다. 두 테이블 모두 다 대다 관계입니다. 예를 들어 나는 현재 링크 테이블을 사용하고 다른 관계를 표현하기 위해
, actor_movie는 * movie_ID * 및 해당 저장하는 것 * people_ID * 영화에서 배우의 각각의 director_movie 표를 저장하는 것입니다 동안 * movie_ID *와 감독 (들) * people_ID *. 작가, 작곡가 및 제작자도 마찬가지입니다.
내 문제는 모든 액터, 감독, 제작자, 작가, 작곡가 등을 하나의 단일 테이블로 반환하여 프론트 엔드 웹 UI에서 목록으로 전달해야하는 것입니다. 영화에 관련된 모든 사람들의
나는 movie_ID * 및 * people_ID *를 기반으로 모든 링크 테이블을 함께 조인 한 다중 SELECT 쿼리를 작성한 다음 명에있는 각 사람의 세부 정보를 반환하는 방법에 관해서 현재 난처한 편입니다. 테이블도 있습니다.
그리고 내가 지금까지 쓴 것의 예를
은 다음과 같습니다SELECT
movie.idMovie,
movie.titleMovie,
movie.descMovie,
movie.dateMovie,
movie.runtimeMovie,
movie.langMovie,
movie.ratingMovie,
people.namePeople
FROM
htv_movie movie
INNER JOIN htv_actorlinkmovie acm ON acm.idMovie = movie.idMovie
INNER JOIN htv_directorlinkmovie dcm ON dcm.idMovie = movie.idMovie
INNER JOIN htv_producerlinkmovie pcm ON pcm.idMovie = movie.idMovie
INNER JOIN htv_people people WHERE people.idPeople = dcm.idPeople AND people.idPeople = acm.idPeople AND people.idPeople = pcm.idPeople
그리고 그것은 하나에서 모든 관련 사람들을 반환해야합니다 : 나는 일이하고 싶은 무엇
SELECT
movie.titleMovie,
people.namePeople,
FROM
movie movie
INNER JOIN actorlinkmovie acm ON acm.idMovie = movie.idMovie
INNER JOIN people people ON people.idPeople = acm.idPeople
입니다 영화.
전적으로 전체 데이터베이스 (처음으로 실제로)를 디자인 할 때 상당히 새로운 기능을 갖추고 있으며, 약 5000 개의 영화 (현재 회사 목표). 이 데이터베이스는 웹 사이트의 백엔드 역할도합니다.
감사합니다.
업데이트 : PHP 변수와 템플릿 SQL 쿼리를 사용하여 일시적으로 더러운 솔루션을 해결했습니다. 여러 개의 내부 조인을 한 것처럼 보이는 것은 결국 필요하지 않습니다. 생각해 줘서 고마워.
각 개인의 모든 행과 각 행의 컨텍스트/부분을 동영상의 안이나 뒤에 숨기고 싶습니까? 또는 "Director (s)", "Writer (s)", "Actor (s)"등의 모든 이름을 표시하는 한 열을 원하십니까? – DRapp
가능하면 여러 열을 선호합니다. –