2017-03-18 2 views
0

동일한 범주의 테이블 2 개를 조인하려고하는데 결과가 좋지 않습니다.동일한 범주의 테이블 조인

나는 2 개의 테이블 tvshows와 영화를 가지고 있는데 둘 다 열 범주가 있습니다. 이제 모든 범주를 살펴보고 범주가 일치 하는지를보고 싶지만이 문제가 무엇인지 잘 모릅니다. 제발, 고마워!

$query = $connection->prepare(" 
    SELECT 
      a.id, 
      a.hash, 
      a.categories, 
      a.thumb_location, 
      a.name, 
      a.year, 
      b.id, 
      b.hash, 
      b.categories, 
      b.thumb_location, 
      b.name, 
      b.year 
      FROM movies AS a 
      LEFT JOIN series AS b 
      ON a.categories = b.categories 
      WHERE a.categories LIKE ? OR b.categories LIKE ? ORDER BY a.id DESC 
"); 

답변

0

당신의 쿼리가 있지만 테이블에 moviesseries에이 이름을 가진 두 개의 열이 있으므로 데이터베이스에서 검색 할 열을 알 수 없습니다.

행을 찾으려면, 아마도 WHERE a.categories LIKE ? OR b.categories LIKE ?을 지정해야하며, 영화 또는 시리즈에 대해 일부 카테고리가 설정됩니다.

카테고리별로 영화 및 시리즈 쌍을 검색하려면 해당 열을 기준으로 영화 및 시리즈 쌍을 검색해야합니다. 그러나 카테고리가 "코미디, 액션"등과 같은 것이라면 작동하지 않을 것입니다. 데이터베이스를 리모델링하고 테이블 categories을 만들고 movies_categories을 만들고 ID가 범주 행이고 ID가 series_categories이고 구조가 동일한 테이블을 만들어야합니다. 시리즈와 같은 카테고리를 가진 영화를 선택하는 것에 대해 많은 질문을 할 수있을 것입니다.

+0

카테고리에 대한 특정 데이터베이스가 있습니다. 그러나 영화 데이터베이스에 새 영화를 삽입하면 액션 코미디 SF 영화 , 작동하지만, 때만 메신저 좋아해요? 영화에 있지만 내가 테이블에 합류하기 시작하면 다소 어렵습니다. 이제 당신이 제안한 것처럼했지만 그래도 여전히 영화 제목 1 개와 비어있는 2 개의 코드를 반환합니다. – Nathaniel

0

나는 매우 잘 이해했는지 모르겠지만,이 시도 제공 :

$query = $connection->prepare(" 
SELECT a.hash, 
     a.categories, 
     a.thumb_location, 
     a.name, 
     a.year, 
     b.hash, 
     b.categories, 
     b.thumb_location, 
     b.name, 
     b.year 
     FROM movies AS a 
     LEFT JOIN series AS b 
     ON a.hash = b.hash 
     WHERE a.categories = b.categories ORDER BY id DESC 

");의 WHERE 부분에 당신의 이름 열 categories를 사용하는

관련 문제