我正在使用yii2。我有四张桌子:
posts
:包含用户发布的帖子(post_id
,user_id
,post
)mapPostClasses
:使用他们的课程发布帖子(map_id
,post_id
,class_id
)mapUsersClasses
:使用类(map_id
,user_id
,class_id
)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 :(得分: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();