2017-10-19 61 views
0

的问题是,该别名fechas不采取任何价值...我不能用它为什么我不能使用别名?使用原始LARAVEL

> $tabla_c2 = DB::table('horarios') 
>  ->select('id_voluntario',DB::raw("DATE_FORMAT(fecha,'%y-%m-%d')as fechas")) 
>  ->where('id_voluntario','=', $temp) 
>  ->where('fechas','=', $datee) 
>  ->get(); 
+0

这不是一个laravel问题,而是一个SQL限制。重复:https://stackoverflow.com/questions/14413867/mysql-select-as-in-where – Jeffrey

+0

检查[这也是](https://stackoverflow.com/questions/200200/can-you-use- (''fechas','=',$ datee)'use' - > having(''fechas','='where-clause-in-mysql) – ljubadr

+0

而不是' ,$ datee)' – ljubadr

回答

1

正如在评论中讨论,这是一个SQL限制 - 你不能使用where子句中的列的别名。

@ljubadr建议的一种解决方法是使用having来代替 - 尽管我会在@Jeffrey这边说这会不必要地让你的查询变慢。

而不是使用别名,你可以利用whereRaw()

$tabla_c2 = DB::table('horarios') 
->select('id_voluntario',DB::raw("DATE_FORMAT(fecha,'%y-%m-%d')as fechas")) 
->where('id_voluntario','=', $temp) 
->whereRaw("DATE_FORMAT(fecha,'%y-%m-%d') = ?", $datee) 
->get(); 

docsEloquent Aggregates下。

+0

谢谢,这真的帮助我,使用whereRaw() – AtyFlow

相关问题