2016-09-03 15:24:37 3850次浏览 1条回答 1 悬赏 40 金钱

a 表
uid name parentid

b 表
uid name

尝试用
在b库创建关系, $this->hasOne(b库::className(), ['uid' => 'parentid']);
主要是为了查询a表里的parentid 对应b表的 name

那么如果设定可以通过用户查询name 到父级 表的name,如何指定andfilterwhere是查询父级的name,
否则默认都会查询到a表里的name

$query->andFilterWhere('like', 'name', ‘要查询的父级name’)

  • 回答于 2016-09-03 17:50 举报

    用left join试试

    $query->leftJoin('父表', 'a.parentId = b.uid')->andFilterWhere(['like', 'a.name', '要查询的父级name'])
    
    3 条回复
    回复于 2016-09-03 19:16 回复

    hi,感谢你的回复。我之前就是用这个,不过想尝试用下with,因为它不是一次性查出来的。

    回复于 2016-09-03 21:35 回复

    不太理解用with的情况,说说

    回复于 2018-12-29 11:02 回复

    少用join 表的多了 容易混乱 with不错啊 with(['with'=>function($query){$query->条件什么的}]) 有文档

您需要登录后才可以回答。登录 | 立即注册
sucksdie
见习主管

sucksdie

注册时间:2016-10-31
最后登录:2017-05-26
在线时长:2小时46分
  • 粉丝0
  • 金钱260
  • 威望0
  • 积分280

热门问题