Php Laravel 4.2查询生成器工作不正常

Php Laravel 4.2查询生成器工作不正常,php,mysql,laravel,laravel-4,query-builder,Php,Mysql,Laravel,Laravel 4,Query Builder,我的数据库是这样的 我有一个Laravel4.2查询生成器代码 DB::table(DB::raw('`car` , `available_car`, `users`')) ->select('car.car_maker', 'car.car_model', 'available_car.car_price', 'car.car_production_year', 'available_car.car_id', 'available_

我的数据库是这样的

我有一个Laravel4.2查询生成器代码

           DB::table(DB::raw('`car` , `available_car`, `users`'))
                ->select('car.car_maker', 'car.car_model', 'available_car.car_price', 'car.car_production_year', 'available_car.car_id', 'available_car.id', 'available_car.current_position')
                //Where
                    //Basic Parts
                    ->where('available_car.car_id', '=' , '`car`.`car_id`')
                    ->where('available_car.is_sold', '=', 'no')
                    ->whereRaw('`available_car`.`created_at` BETWEEN NOW() - INTERVAL 30 DAY AND NOW()')
                //Ordering
                ->orderByRaw('WEEK(`available_car`.`created_at`) DESC')
                ->orderBy('available_car.car_price', 'desc')
                ->orderBy('users.last_paid_date', 'desc')
                ->orderBy('available_car.created_at', 'desc')
                ->distinct();
        echo $query->count();
        $info = $query->get();
在这里,如果我想知道执行什么查询,我使用了以下代码

$info = $query->get();
$queries = DB::getQueryLog();
现在我得到这个输出

0{"query":"select distinct `car`.`car_maker`, `car`.`car_model`, `available_car`.`car_price`, `car`.`car_production_year`, `available_car`.`car_id`, `available_car`.`id`, `available_car`.`current_position` from `car` , `available_car`, `users` where `available_car`.`car_id` = ? and `available_car`.`is_sold` = ? and `available_car`.`created_at` BETWEEN NOW() - INTERVAL 30 DAY AND NOW() order by WEEK(`available_car`.`created_at`) DESC, `available_car`.`car_price` desc, `users`.`last_paid_date` desc, `available_car`.`created_at` desc","bindings":["`car`.`car_id`","no"],"time":1.03}
如果我在PHP MyAdmin查询中运行此输出代码

SELECT DISTINCT  `car`.`car_maker` ,  `car`.`car_model` ,  `available_car`.`car_price` ,  `car`.`car_production_year` ,  `available_car`.`car_id` ,  `available_car`.`id` ,  `available_car`.`current_position` 
FROM  `car` ,  `available_car` ,  `users` 
WHERE  `available_car`.`car_id` =  `car`.`car_id` 
AND  `available_car`.`is_sold` =  'no'
AND  `available_car`.`created_at` 
BETWEEN NOW( ) - INTERVAL 30 
DAY AND NOW( ) 
ORDER BY WEEK(  `available_car`.`created_at` ) DESC ,  `available_car`.`car_price` DESC ,  `users`.`last_paid_date` DESC , `available_car`.`created_at` DESC 
我有这样的输出

所以,对于同一个SQL查询,我在Laravel中得到空行,在原始查询中得到8行

有人能帮我解决这个问题吗


提前感谢您的帮助。

据我所知,您不能绑定表名和列名。

这就是查询失败的原因(更准确地说,没有给出期望的结果)

这是你的汽车卡

这行不通。下面的方法应该有效

->whereRaw('`available_car`.`car_id` =`car`.`car_id`')
这将产生与phpmyadmin相同的结果。

您可以使用绑定


或者您可以使用联接。

从您的示例中,我看不到您将生成查询分配给变量,如so
$query=DB::table(…
)。您是否在实际代码中这样做,而这只是您忘记在问题示例中添加的内容?您可以提供一些示例吗?
->whereRaw('`available_car`.`car_id` =`car`.`car_id`')