仅查找YIi2中相关表中包含数据的行
我有两个表:“用户”包含用户数据,“帖子”包含用户帖子。每个用户可以有许多帖子 使用者仅查找YIi2中相关表中包含数据的行,yii2,Yii2,我有两个表:“用户”包含用户数据,“帖子”包含用户帖子。每个用户可以有许多帖子 使用者 身份证 全名 职位 邮政编码 发布内容 id\u用户 我想做的是隐藏没有帖子的用户,所以我尝试在我的搜索模型中加入表: public function search($params) { $query = Users::find->joinWith(['posts']); } 但不幸的是,没有post的用户仍然显示。使用mysqlWHERE NOT NULL语法 $query = Us
- 身份证
- 全名
- 邮政编码
- 发布内容
- id\u用户
public function search($params) {
$query = Users::find->joinWith(['posts']);
}
但不幸的是,没有post的用户仍然显示。使用mysql
WHERE NOT NULL
语法
$query = Users::find->joinWith(['posts'])->where(['not', ['posts.post_no' => null]]);
其中,Yii2的非空替代语法:
->where(['IS NOT', 'posts.post_no', null]);
->where(['<>', 'posts.post_no', null]);
->having(['posts.post_no' => 'NOT NULL']);
->其中(['IS NOT','posts.post_no',null]);
->其中(['',posts.post_no',null]);
->有(['posts.post_no'=>'notnull']);
请在此处查看官方文件:
使用
innerJoinWith()
@疯狂骷髅我尝试了你的建议,并将其更改为:$query=Users::find->innerJoinWith(['posts]);但仍然不起作用:(很乐意帮忙:-)