簡體   English   中英

Laravel 4查詢生成器SQL語句

[英]Laravel 4 Query Builder SQL Statement

美好的一天,我有這個SQL語句,並且在如何在Laravel查詢中轉換此語句時遇到了困難。

我在http://laravel.com/docs/4.2/queries中閱讀了文檔,我很困惑。 任何幫助都可以。

SELECT count(*) FROM `transactions` WHERE `borrower_id` = 2 
            AND `book_id` = 2 AND (
                (
                    `reservedDate` IS NOT NULL 
                    and `borrowedDate` IS NULL
                ) 
                OR (
                    `borrowedDate` IS NOT NULL 
                    AND `returnedDate` IS NULL
                )
            )

因此,我嘗試通過閱讀Laravel的文檔來構建此查詢。 尚未進行測試,但希望它能給您正確的方向。

也許下次,您應該顯示自己的查詢(如果不正確,可以)。 從那里開始更容易。

$super_query = DB::table('transactions')->where('borrower_id' , '=' , 2)->where('book_id', '=' , 2)->where( function ( $query ) {
$query->where(function ($query1) {
    $query1->whereNotNull('reservedDate')->whereNull('borrowedDate')
)->orWhere(function ($query2) {
    $query2->whereNotNUll('borrowedDate')->whereNull('returnedDate')
})  
})->count();
    DB::table('transactions')
  ->Where('borrower_id', '=', 2)
  ->Where('book_id', '=', 2)
  ->where(function($query)
  {
    $query->where(function($query1) {
      $query1->whereNotNull('reservedDate')
             ->whereNull('borrowedDate');

    })
    ->orWhere(function($query2) {
      $query2->whereNotNull('borrowedDate')
             ->whereNull('returnedDate');
  });
})->count();

試試這個..這將導致

select count(*) from `transactions` where `borrower_id` = 2 and `book_id` = 2 and ((`reservedDate` is not null and `borrowedDate` is null) or (`borrowedDate` is not null and `returnedDate` is null))

嘗試這個:

雄辯

Transactions::where('borrower_id', '=', 2)
    ->where('book_id', '=', 2)
    ->where(function($query)
    {
        $query->whereNotNull('reservedDate')
                ->whereNull('borrowedDate');
    })
    ->orWhere(function($query)
    {
        $query->whereNotNull('borrowedDate')
                ->whereNull('returnedDate');
    })
    ->count();
book::count()->where('borrower_id','=','2','book_id','=',2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM