sql >> データベース >  >> RDS >> Mysql

laravelでjoinを使用したサブクエリ

    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 FluentQueryBuilderサブクエリで結合

    書き方Laravel 5.1のこれ(左結合、サブクエリ)?

    詳細情報abautが参加: https://laravel.com/docs/5.5/queries#joins



    1. MySQL制限、グループ、およびAVGクエリ

    2. Powershellを使用してPostgreSQLからデータを取得する

    3. SQLiteReadOnlyDatabaseException:読み取り専用データベースを書き込もうとしました(コード1032)

    4. group_concatに長さの制限があるか、またはテキストフィールドで機能しない別の理由がありますか