排序有关表值(包括但现有关系的元素)
可以说我有两个表:用户和组织排序有关表值(包括但现有关系的元素)
users: id int,
name varchar,
type int,
deleted bool
organisations:
id int,
name varchar
deleted bool
,我想用的类型1名用户组织排序。我知道,当我想通过关系值排序我必须使用加入:
$organisationsModel -> join('users', 'organisations.id', '=', 'users.organisationId', 'left') -> select('organisations.*', 'users.name as userName')
-> where('users.type', 1)
-> where('users.deleted', 0)
-> orderBy('userName', 'ASC);
,但只显示有1型的用户组织(与删除设置为0),我的问题是:我可以修改这个查询也返回没有适当的用户连接它的值?
回答:
你需要一个左为了得到所有组织,要订购的结果您可以通过子句
$organisationsModel->leftJoin('users', function ($join) { $join->on('organisations.id', '=', 'users.organisationId')
->where('users.type', 1)
->where('users.deleted', 0);
})
->select('organisations.*', 'users.name as userName')
->orderByRaw('CASE WHEN users.type = 1 AND users.deleted = 0 THEN 1 ELSE 0 END DESC')
->orderBy('userName', 'ASC);
Another similar problem
以上是 排序有关表值(包括但现有关系的元素) 的全部内容, 来源链接: utcz.com/qa/262731.html