Db::name('dept')->field('id,name')->where(['parent_id' => 0])->union(function($query){
$query->name('dept_group')->field('group_id id,group_name name')->distinct(true)->order('group_id');
}, true)fetchSql(true)->select();生成的SQL语句:SELECT `id`,`name` FROM `tp_dept` UNION ALL ( SELECT DISTINCT group_id id,group_name name FROM `tp_dept_group` ORDER BY `group_id` ) WHERE ( parent_id=0 )正确的SQL语句:SELECT `id`,`name` FROM `tp_dept` WHERE ( parent_id=0 ) UNION ALL ( SELECT DISTINCT group_id id,group_name name FROM `tp_dept_group` ORDER BY `group_id` )where放错位置了! 最佳答案