sql >> Databáze >  >> RDS >> Mysql

Laravel (5.3) Výmluvný - Vztahová záležitost

Můžete to zkusit jako:

// 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();

Pak použijte tyto $genre_ids k načtení souvisejících filmů jako:

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

Aktualizovat

Za předpokladu, že máte:

$genre_ids = [21, 23];

pak váš dotaz může být takto:

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

Poznámka – Netestoval jsem to, ale můžete to zkusit.




  1. Indexujete sloupec MySql TEXT?

  2. Proč byste neměli používat mysql_fetch_assoc více než jednou?

  3. Obnovte databázi v SQL Server 2017

  4. PERIOD_ADD() Příklady – MySQL