Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Laravel (5.3) Eloquent - Vấn đề về mối quan hệ

Bạn có thể thử như:

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

Sau đó, sử dụng $genre_ids đó để tìm nạp các phim liên quan dưới dạng:

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

Cập nhật

Giả sử bạn có:

$genre_ids = [21, 23];

thì truy vấn của bạn có thể là:

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

Lưu ý - Tôi chưa thử nhưng bạn có thể dùng thử.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chế độ nào cho MySQL WEEK () tuân thủ ISO 8601

  2. MySql - Sequalize - Không thể thêm ràng buộc khóa ngoại

  3. Laravel Migration thêm trường sau khi dữ liệu có trong bảng?

  4. Câu lệnh If Else đơn giản trong sql

  5. Trợ giúp dữ liệu phân cấp MySQL - Phương pháp bảng đóng