Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel (5.3) Elokwentny - Problem w związku

Możesz spróbować 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();

Następnie użyj tych $genre_ids aby pobrać powiązane filmy jako:

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

Aktualizacja

Zakładając, że masz:

$genre_ids = [21, 23];

Twoje zapytanie może wyglądać tak:

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

Uwaga – nie testowałem tego, ale możesz spróbować.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przykłady instrukcji JDBC — wstaw, usuń, zaktualizuj, wybierz rekord

  2. Jak przekazać warunki do zapytania mySql?

  3. Format czasu PHP

  4. Znajdowanie pozycji liczby w łańcuchu

  5. Dlaczego mój obraz się nie wyświetla?