Join Yii2深节理
我正在使用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 我
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类的活动记录返回。否则,我仍然以数组的形式获得结果