Union (Kettenoperation 12)


Union-Verwendungsbeispiel:

Db::field('name')
    ->table('think_user_0')
    ->union('SELECT name FROM think_user_1')
    ->union('SELECT name FROM think_user_2')
    ->select();

Schließungsverwendung:

Db::field('name')
    ->table('think_user_0')
    ->union(function ($query) {
        $query->field('name')->table('think_user_1');
    })
    ->union(function ($query) {
        $query->field('name')->table('think_user_2');
    })
    ->select();

oder

Db::field('name')
    ->table('think_user_0')
    ->union([
        'SELECT name FROM think_user_1',
        'SELECT name FROM think_user_2',
    ])
    ->select();

unterstützt UNION ALL Operationen wie:

Db::field('name')
    ->table('think_user_0')
    ->unionAll('SELECT name FROM think_user_1')
    ->unionAll('SELECT name FROM think_user_2')
    ->select();

oder

Db::field('name')
    ->table('think_user_0')
    ->union(['SELECT name FROM think_user_1', 'SELECT name FROM think_user_2'], true)
    ->select();

Jede Union-Methode entspricht einer unabhängigen SELECT-Anweisung.

Die SELECT-Anweisungen innerhalb der UNION müssen die gleiche Anzahl von Spalten haben. Spalten müssen außerdem ähnliche Datentypen haben. Außerdem muss die Reihenfolge der Spalten in jeder SELECT-Anweisung gleich sein.