I가 정규화 다음과 같은 3 개 테이블 :Laravel (5.3) 웅변 - 관계 문제
`Table: TheMovies`
id | MovieName
---------------------
1 | Zootopia
2 | Moana
3 | Toy Story
`Table: TheGenres`
id | GenreName
---------------------
21 | Action
22 | Animation
23 | Adventure
`Table: mMoviesGenres`
movieID | genreID
---------------------
1 | 21
1 | 23
2 | 22
2 | 21
3 | 23
3 | 21
당신이 영화는 여러 장르를 가지고 3 표에서 볼 수 있으며, 장르는 여러 영화를 가지고있다.
나는 TheLove에서 TheMovies 및 TheGenres 모델을 만들었습니다.
나는 관계는 다음 코드를 사용하여 모델 내부에 구성되어 있음을 확인했다 :
class TheMovies extends Model
{
public function TheGenres() {
return $this->belongsToMany('App\TheGenres', 'mMoviesGenres', 'seriesID', 'genreID');
}
}
class TheGenres extends Model
{
public function TheGenres() {
return $this->belongsToMany('App\TheMovies', 'mMoviesGenres', 'genreID', 'seriesID');
}
}
내가 모든 것을 테스트 한을, 나는 특정 영화 장르의 목록을 표시하는 데 성공하고, 또한 성공 특정 장르의 영화 목록을 표시합니다.
실제 문제는 장르에 따라 특정 영화의 관련 영화를 표시하고 싶다는 것입니다.
TheMovies.id = 1은 TheMovies.id = 3과 비슷합니다. 세 번째 표에서 볼 수 있듯이 액션과 어드벤처입니다.
다음 게시물을 기반으로 필요한 검색어를 찾았습니다 : SQL Query based on other table.
SELECT m2.movieId
FROM mMoviesGenres m1
INNER JOIN mMoviesGenres m2
ON m1.genreID = m2.genreID
WHERE m1.movieId = 1 AND
m2.movieId <> 1
GROUP BY m2.movieId
HAVING COUNT(*) >= 2
그러나 나는 웅변 스타일이 쿼리를 변환하는 방법을 모른다, 그래 나는 웅변에 원시 쿼리를 만들 수 있지만, 내가 만든 관계의 사용을 만들고 싶어.
제발 나에게 조언을 해줘.
mysql 버전과 같은 1 개의 쿼리를 사용하는 방법이 있습니까? – Coder
귀하의 질의 응답은 잘 작동하지만, 적어도 1 건의 검색이 제 경우에는 적어도 2가되어야합니다. – Coder
업데이트 된 답변을 확인하십시오. –