2016-02-22 29 views
0

我正在使用yii2。我有四个表:Yii2与

  1. posts:包含了用户后(post_iduser_idpost
  2. mapPostClasses:他们班(map_idpost_idclass_id
  3. mapUsersClasses地图的帖子:地图用户类(map_id,user_id,class_id
  4. Users:用户详细信息表(user_id,name等)。

现在我想加入查询Posts table找到所有职位WHOSE CLASS_ID IS SAME AS THE GIVEN USER'S CLASS_ID。我目前使用

样品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 

回答

0

您可以使用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(); 
+0

但我想结果被作为邮政AR类的活动记录返回。否则我仍然得到结果作为数组 –