Laravel - дополнительное условие в соединении с использованием запроса DB :: raw () - PullRequest
2 голосов
/ 06 июня 2019

Я хочу добавить условное "ИЛИ" в запрос DB::raw join

У меня есть этот запрос:

$billings = DB::table("billings")
    ->select("billings.plan", "billings.email",DB::raw("COUNT(billings.plan) as total_plans") ,DB::raw("SUM(billings.amount) as total_amount"))
    ->join("users","users.email","=","billings.email")
    ->groupBy("billings.plan")
    ->orderByRaw('billings.plan ASC');

В нем у меня есть:

->join("users","users.email","=","billings.email")

Я хочу использовать условие «ИЛИ»:

->join("users","users.email","=","billings.email")

или

->join("users","users.phone","=","billings.phone")

Ответы [ 3 ]

0 голосов
/ 06 июня 2019
$billings = DB::table("billings")
           ->select("billings.plan", "billings.email",DB::raw("COUNT(billings.plan) as total_plans") ,DB::raw("SUM(billings.amount) as total_amount"))
            ->join("users",function($join){
                  $join->on("users.email","=","billings.email");
                  $join->orOn("users.phone","=","billings.phone");
             })
            ->groupBy("billings.plan")
            ->orderByRaw('billings.plan ASC');
0 голосов
/ 06 июня 2019

Я думаю, что для этого вам нужно использовать расширенное предложение объединения. Примерно так: -

DB::table('users')
    ->join('contacts', function ($join) {
        $join->on('users.id', '=', 'contacts.user_id')->orOn(...);
    })
    ->get();
0 голосов
/ 06 июня 2019

попробуйте ниже:

$billings = DB::table("billings")
    ->select("billings.plan", "billings.email", DB::raw("COUNT(billings.plan) as total_plans"), DB::raw("SUM(billings.amount) as total_amount"))
    ->join("users", function ($join) {
        $join->on("users.email", "=", "billings.email")
            ->orOn("users.phone", "=", "billings.phone")
    })
    ->groupBy("billings.plan")
    ->orderByRaw('billings.plan ASC');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...