勾股OA在线文档

union

UNION操作用于合并两个或多个 SELECT语句的结果集。

使用示例:

Db::field('name')
    ->name('user_0')
    ->union('SELECT name FROM oa_user_1')
    ->union('SELECT name FROM oa_user_2')
    ->select();

闭包用法:

Db::field('name')
    ->name('user_0')
    ->union(function ($query) {
        $query->field('name')->name('user_1');
    })
    ->union(function ($query) {
        $query->field('name')->name('user_2');
    })
    ->select();

或者

Db::field('name')
    ->name('user_0')
    ->union([
        'SELECT name FROM oa_user_1',
        'SELECT name FROM oa_user_2',
    ])
    ->select();

支持UNION ALL操作,例如:

Db::field('name')
    ->name('user_0')
    ->unionAll('SELECT name FROM oa_user_1')
    ->unionAll('SELECT name FROM oa_user_2')
    ->select();

或者

Db::field('name')
    ->name('user_0')
    ->union(['SELECT name FROM oa_user_1', 'SELECT name FROM oa_user_2'], true)
    ->select();

每个union方法相当于一个独立的SELECT语句。

注意:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。