【发布时间】:2019-11-11 10:04:05
【问题描述】:
假设我有这个:
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 附近使用正确的语法 不在(从公共汽车中选择 driver_number)和 station_id = ?'在第 1 行 (SQL: select * from
driverswhere id = 2 driver_number 不在 (从公共汽车中选择 driver_number)AND station_id = ?)
我认为这样说有错误,那就是它得到了类型系统错误。因此,如果有人知道更好的方法,您可以提供帮助。
【问题讨论】:
-
请在您的
WHERE子句中添加括号以使其明确。 -
你可以试试 $task_without_due_date = \DB::select(\DB::raw("your query)); 这个也可以
标签: php mysql laravel eloquent laravel-query-builder