Join Yii2深节理

Join Yii2深节理,join,yii2,Join,Yii2,我正在使用yii2。我有四张桌子: posts:包含用户发布的帖子(post\u id,user\u id,post) mapPostClasses:映射帖子及其类(map\u id,post\u id,class\u id) MapUsersClass:使用类映射用户(map\u id,user\u id,class\u id) 用户:用户详细信息表(用户id,名称等) 现在,我需要对Posts表进行联接查询,以查找其CLASS\u ID与给定用户的CLASS\u ID相同的所有Posts 我

我正在使用yii2。我有四张桌子:

  • posts
    :包含用户发布的帖子(
    post\u id
    user\u id
    post
  • mapPostClasses
    :映射帖子及其类(
    map\u id
    post\u id
    class\u id
  • MapUsersClass
    :使用类映射用户(
    map\u id
    user\u id
    class\u id
  • 用户
    :用户详细信息表(
    用户id
    名称
    等)
  • 现在,我需要对
    Posts表
    进行联接查询,以查找其CLASS\u ID与给定用户的CLASS\u ID相同的所有Posts

    我当前使用的示例SQL是

    Select p.* FROM posts p ,mapUsersClass muc, mapPostsClass mpc
    muc.user_id = $user_id
    AND mpc.class_id = muc.class_id
    AND p.post_id = mpc.post_id 
    

    您可以使用
    ActiveQuery

    $query = (new \yii\db\Query())
    ->select('*')
    ->from('posts p')
    ->join('join','mapPostsClass mpc','p.post_id = mpc.post_id')
    ->join('join','mapUsersClass muc','mpc.class_id = muc.class_id')
    ->where('muc.user_id = '.$user_id.'')
    ->all();
    

    但我希望结果作为Post AR类的活动记录返回。否则,我仍然以数组的形式获得结果