亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 SQL 轉換為 Laravel

將 SQL 轉換為 Laravel

PHP
慕婉清6462132 2021-09-18 15:55:50
假設我有這個:SELECT * FROM drivers where driver_number NOT IN (SELECT driver_number FROM buses) AND station_id = 2 OR driver_number = 'Dr_02'它顯示這些數據然后我想將這些數據作為 Laravel 查詢獲取,這就是我所做的:$drivers = Driver::whereRaw('driver_number not in (select driver_number from buses) AND station_id = ? ', [$station_id].' OR id = ?', [$bus->Driver_id])                     ->get();但我收到此錯誤:SQLSTATE[42000]:語法錯誤或訪問沖突:1064 你的 SQL 語法有錯誤;檢查與您的 MariaDB 服務器版本相對應的手冊,了解在“driver_number not in (select driver_number from bus) AND station_id = ?”附近使用的正確語法 在第 1 行(SQL:select * from driverswhere id = 2 driver_number not in (select driver_number from bus) AND station_id = ?)我認為這樣說是有錯誤的,那就是它得到了類型系統錯誤。因此,如果有人知道更好的方法,您可以提供幫助。
查看完整描述

3 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

這在 Laravel 中處理起來很棘手。您的WHERE子句中的邏輯基本上是(A and B) or C,其中條件A可以由NOT EXISTSMySQL 中的子查詢表示。


$drivers = DB::table('Driver d')

    ->where(function($query1) {

        return $query1

            ->whereNotExists(function ($query2) {

                $query2->select(DB::raw(1))

                    ->from('buses b')

                    ->whereRaw('d.driver_number = b.driver_number');

              })

            ->where('station_id', '=', '2');

    })

    ->orWhere('driver_number', '=', 'Dr_02');

->get();


查看完整回答
反對 回復 2021-09-18
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

您可以嘗試使用

$task_without_due_date = \DB::select(\DB::raw("SELECT * FROM drivers where driver_number NOT IN (SELECT driver_number FROM buses) AND station_id = '.$station_id.' OR driver_number = '.$bus->Driver_id.'"));


查看完整回答
反對 回復 2021-09-18
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

試試這個,


$result = DB::table('drivers')

->whereNotIn('driver_number', function($q){

    $q->select('driver_number')->from('buses');

})

->where('station_id', '=', 2)

->where('driver_number', '=', 'Dr_02')

->get();


查看完整回答
反對 回復 2021-09-18
  • 3 回答
  • 0 關注
  • 159 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號