2014-10-02 47 views
2

美好的一天,我有這條SQL語句,我在如何在Laravel Query中進行轉換時遇到困難。Laravel 4查詢構建SQL語句

我看了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 
       ) 
      ) 

回答

1

所以我嘗試從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(); 
+1

謝謝!接下來我會顯示我的問題,我嚇壞了。 – yowza 2014-10-02 03:38:54

+0

爲什麼downvote?任何想法來改善這個答案?謝謝 – 2014-10-02 03:39:35

+0

@yowza如果你確定只是把它標記爲正確的答案。謝謝 – 2014-10-02 03:40:08

0
book::count()->where('borrower_id','=','2','book_id','=',2) 
+1

謝謝你提供的 '其中' 語句,我仍然需要其他部分.. – yowza 2014-10-02 03:31:09

1
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)) 
+0

謝謝,我也會試試這個! – yowza 2014-10-02 03:43:17

+0

男人,你打我30秒! – 2014-10-02 03:44:57

+0

@JaredEitnier我還是新來的......只是註冊幫忙......我不知道這是比賽 – 2014-10-02 03:47:12

1

試試這個:

雄辯

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