如何将给定的SQL查询转换为雄辩的laravel?

时间:2019-05-04 19:25:38

标签: php laravel laravel-5.2

我很难将下面给定的SQL查询转换为雄辩的。

这是我要做的事的一个例子-

SELECT u.wallet_address AS wallet_address, p.id AS project_id
FROM users u, projects p, investment_investor i
WHERE u.id = i.user_id AND 
      p.id=i.project_id AND 
      u.wallet_address <> '' AND 
      p.wallet_address <> '' AND
      p.contract_address <> ''
GROUP BY u.id, p.id;

下面的SQL查询为我提供了预期的输出,可以使用Laravel DB查询构建器进行构建。但是要将其标准化为Laravel框架。

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您必须能够以laravel方式编写查询的第一件事是Model。模型的例子就是这样

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    //
}

您可以详细了解here

一旦创建它,​​就可以开始编写查询。例如

$results = Users::selectRaw('users.wallet_address as `wallet_address`,'.
                 'id as `project_id`')
                ->get();

您可以阅读有关联接和其他内容的更多信息here

答案 1 :(得分:0)

 $result=DB::table('investment_investor')
    ->select('users.wallet_address as wallet_address','projects.id AS project_id')
    ->join('users','users.id','=','investment_investor.user_id')
    ->join('projects','projects.id','=','investment_investor.project_id')
    ->where('users.wallet_address','!=','')
    ->where('projects.wallet_address','!=','')
    ->where('projects.contract_address','!=,'')
    ->groupBy('users.id', 'projects.id')
    ->get();