Join Laravel中表之间的联接

Join Laravel中表之间的联接,join,laravel,Join,Laravel,我有两个表{users,books}。 我如何在它们之间加入laravel,以获得阅读的书籍数?关系: class User extends Eloquent { public function books() { return $this->hasMany('Book'); } } class Book extends Eloquent { public function user() {

我有两个表
{users,books}
。 我如何在它们之间加入
laravel
,以获得阅读的书籍数?

关系:

class User extends Eloquent
{
      public function books()
      {
            return $this->hasMany('Book');
      }
}


class Book extends Eloquent
{
      public function user()
      {
            return $this->belongsTo('User');
      }
}
然后在代码中

$user = User::find(1);
$user->books->count();

假设您使用雄辩,并且您的模型称为Book and User,它们之间存在多对多关系,您可以执行以下操作:

Book::has(users)->count();

这将为您提供至少有一个用户关联的所有书籍的计数。它将在内部转换为一个内部联接。

只获取第一个用户阅读的书籍数量,但我想要阅读的书籍总数。那么就这样做Book::count()?这给了你所有的书作为一个计数?这给了所有的书读和不读,但我想计算的书只读。那么你的“用户”表是阅读的书?那没有道理吗?不管怎样-如果是,你可以只做Users::count()?如果两个用户读的是同一本数为2的书,但我想要的是不重复任何书的书的数量。