sql >> Database teknologi >  >> RDS >> Mysql

Laravel (5.3) Veltalende - Relationsproblem

Du kan prøve som:

// returns array of genre_ids associate with the TheMovies.id => 1

$genre_ids = TheGenres::whereHas('TheMovies', function($q) {
    $q->where('id', 1);
})->pluck('id')->toArray();

Brug derefter disse $genre_ids for at hente de relaterede film som:

TheMovies::whereHas('TheGenres', function($q) use($genre_ids) {
    $q->whereIn('id', $genre_ids);
})->get();

Opdater

Forudsat at du har:

$genre_ids = [21, 23];

så kan din forespørgsel være som:

TheMovies::whereHas('TheGenres', function($q) use($genre_ids) {
    $q->whereIn('genreID', $genre_ids)
        ->groupBy('movieID')
        ->havingRaw('COUNT(DISTINCT genreID) = 2');
})->get();

Bemærk - jeg har ikke testet det, men du kan prøve det.




  1. Hvordan får jeg den første dag i ugen på en dato i mysql?

  2. Oracle - Sådan opretter du en skrivebeskyttet bruger

  3. SQL-sætning for at få alle kunder uden ordrer

  4. Sådan ændres standardværdien for en kolonne ved hjælp af en procedure