sql >> Databasteknik >  >> RDS >> Mysql

Laravel (5.3) Talande - Relationsfråga

Du kan prova 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();

Använd sedan dessa $genre_ids för att hämta relaterade filmer som:

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

Uppdatera

Förutsatt att du har:

$genre_ids = [21, 23];

då kan din fråga vara som:

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

Obs - jag har inte testat det men du kan prova det.




  1. MySQL Som flera värden

  2. Vad är meningen med SELECT ... FOR XML PATH(' '),1,1)?

  3. Hur man lägger till sista kolumnen i mysql-tabellen

  4. Inte en giltig månad på ett INSERT-utdrag