每一个 _complex 都是将之前的sql语句合并,然后用新数组组合语句,这样之前的语句就和新sql语句合并了。

$cate = M('category_art c');
$where['c.id'] = $id;
$where['c.pid'] = $id;
$where['_logic'] = 'or';
$map['_complex'] = $where;  // 将where数组中的语句合并成一个sql字符串
$map['a.del'] = 0;  // 新的语句用_complex 所在的数组接着写

$list = $cate->join("article a ON c.id = a.category_id")
->field('a.id,c.menu,a.title,a.atime')->where($map)->order('c.id asc, a.id asc')->select();

echo M()->getLastSql();