我有表用户和数据透视表role_user,并非每个用户都有角色。我需要进行查询并获取所有用户,并按角色对它们进行排序,然后我应该使用join语句,该查询将如何呈现? 我需要一些类似的查询,但是那些拥有角色的用户是第一个而不是那些没有像现在那样拥有角色的用户:
$users = DB::table('users')
->leftJoin('role_user', 'users.id', '=', 'role_user.user_id')
->orderBy('role_id')
->get();
答案 0 :(得分:2)
以下代码可以解决这个问题:
<div data-id="id"></div>
这样您首先按 role_id IS NULL 排序,如果用户设置了 role_id ,则 0 > 1 如果用户没有角色,那么具有角色设置的用户将首先使用。然后,在每个组中,用户将按 role_id 排序。