如何根据优先顺序查询科室医生名单



假设我有两个表Doctor&Doctor_department

Doctor_department表中有一些部门

部门列表

a(优先级=1(,b(优先级=2(,c(优先级=3(

Doctor表中,在这些部门下也有一些具有优先级的医生列表

医生列表

d1(比例=1,dpearmtent=a(,d2(比例=2,dpearment=a,d3(比例=3,dpearmtent=a(,d4(比例=4,dpeamtent=b(,d5(比例=5,dpearmtent=b(,d6(比例=6,dpeamtent=c(,d7(比例=7,dpearmtent=c(

现在我想根据科室和优先级查询那些医生,如下格式

(a(d1,d2,d3((,(b(d4,d5((

MySQL的查询是什么?

我可以根据医生的优先级升序获取医生列表,但无法根据优先级升序获取科室的医生。

查询

Doctor_list = Doctor::orderBy('priority', 'ASC')->get();

有人能帮忙吗?提前感谢

这里有两个解决方案,第一个是在两个表之间建立连接,并按Doctor_department.priority.排序

第二个我假设Doctor_department是一个透视表,你有一个"departments"表,并且有一个名为doctors的关系,类型为belongsToMany,然后你可以使用下面的代码检索按优先级排序的所有科室,并有医生。

Department::orderBy('priority','ASC')->has('doctors')->with('doctors')->get();

最新更新