Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel (5.3) Eloquent - Въпрос на връзката

Можете да опитате като:

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

След това използвайте тези $genre_ids за да извлечете свързаните филми като:

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

Актуализиране

Ако приемем, че имате:

$genre_ids = [21, 23];

тогава вашата заявка може да бъде като:

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

Забележка – не съм го тествал, но можете да го опитате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL тип данни INT(11) докато UNSIGNED INT(10)?

  2. Как да добавя коментари към таблица или колона в mysql с помощта на SQLAlchemy?

  3. PHP &MySQL Как да се показват категории всякакви подкатегории от базата данни

  4. Как да коригирам неразрешен външен символ поради MySql Connector C++?

  5. Как мога да прехвърля int към bit в MySQL 5.1?