如何在Laravel Query Builder中转换此PostgreSQL而不使用DB::Raw

z4bn682m  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(2)|浏览(149)

我尝试在Laravel Query Builder语法中转换PostGreSQL查询,但不起作用

SELECT users.*, rifs.rif
FROM users
JOIN rif_user on users.id = rif_user.user_id
JOIN rifs ON rifs.id = rif_user.rif_id
WHERE email = 'email@email.com';

$busq = DB::table(['users','rifs'])
->select('rifs.nombre','users.email','rifs.rif')
->join('rif_user','users.id', '=', 'rif_user.user_id')
->join('rifs', 'rifs.id', '=', 'rif_user.rif_id')
->where('email' ,'email@email.com')
->get();

我在Laravel Tinker上尝试了代码,并得到了输出:

  • 〉select('rifs. nombre','users.email','rifs. rif')PHP解析错误:语法错误,第1行出现意外的T_OBJECT_OPERATOR-〉join('rif_user','users.id','=','rif_user.user_id')PHP分析错误:语法错误,第1行出现意外的T_OBJECT_OPERATOR-〉join('rifs','rifs.id','=','rif_user.rif_id')PHP分析错误:语法错误,第1行出现意外的T_OBJECT_OPERATOR-〉where('email','email@email.com')PHP分析错误:语法错误,第1行出现意外的T_OBJECT_OPERATOR-〉get();
fcg9iug3

fcg9iug31#

如果您有任何问题,请在下面的对话框中输入您的问题。如果您有任何问题,请在下面的对话框中输入您的问题。如果您有问题,请在下面的对话框中输入您的问题。
我把所有的代码放在一行中

mlmc2os5

mlmc2os52#

尝试为每个表创建别名,如下所示

$busq = DB::table('users as u')
->select('r.nombre','u.email','r.rif')
->join('rif_user as ru','u.id', '=', 'ru.user_id')
->join('rifs as r', 'r.id', '=', 'ru.rif_id')
->where('u.email' ,'email@email.com')
->get();

相关问题