如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
UNION操作用于合并两个或多个 SELECT 语句的结果集。
1 2 3 4 5 |
Db::field('name') ->table('think_user_0') ->union('SELECT name FROM think_user_1') ->union('SELECT name FROM think_user_2') ->select(); |
闭包用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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(); Db::field('name') ->table('think_user_0') ->union([ 'SELECT name FROM think_user_1', 'SELECT name FROM think_user_2', ]) ->select(); |
支持UNION ALL 操作
1 2 3 4 5 6 7 8 9 10 11 |
Db::field('name') ->table('think_user_0') ->unionAll('SELECT name FROM think_user_1') ->unionAll('SELECT name FROM think_user_2') ->select(); Db::field('name') ->table('think_user_0') ->union(['SELECT name FROM think_user_1', 'SELECT name FROM think_user_2'], true) ->select(); |
每个union方法相当于一个独立的SELECT语句。
UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。