Mysql
 sql >> база данни >  >> RDS >> Mysql

подзаявка с присъединяване в laravel

опитайте да изпратите подзаявката като необработен израз като първи параметър в leftJoin() метод, например:

$subquery = '(SELECT 
                    usr_log1.*
                FROM
                    users_log_logradouro AS usr_log1
                LEFT JOIN 
                    users_log_logradouro AS usr_log2 
                    ON usr_log1.user_id = usr_log2.user_id
                    AND usr_log1.created_at < usr_log2.created_at
                WHERE
                    usr_log2.user_id IS NULL) 
                AS temp';

    DB::table('users as usr')
        ->select(...)
        ->leftJoin(DB::raw($subquery), 'usr.id', '=', 'temp.user_id')
        ->leftJoin(...)
        ->join(...)
        ->join(...)
        ->join(...)
        ->leftJoin(...)
        ->leftJoin(...)
        ->leftJoin(...)
        ->where(...)
        ->get()

има подобни примери в тези въпроси:

Laravel Fluent Query Builder Присъединяване с подзаявка

Как се пише това (ляво съединение, подзаявка) в Laravel 5.1?

повече информация за присъединяванията:https://laravel.com/docs/5.5/queries#joins



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql машина за промяна на таблицата MyISAM към InnoDB

  2. mySQL count връща само един резултат, освен ако не използва group by

  3. Създаване и свързване на таблици в MySQL заявка

  4. АКТУАЛИЗИРАНЕ на всички стойности на колони, еквивалентни на стойността на колона от друга таблица въз основа на техния идентификатор

  5. Предпочитани инструменти на MySQL