我有表用户和项目。
项目有:
project_manager_id -> references users.id
business_manager_id -> references users.id
我必须通过其中一个来订购。所以,我的查询是:
select * from projects...
LEFT JOIN profiles project_managers ON project_managers.id = projects.project_manager_id
LEFT JOIN profiles business_managers ON business_managers.id = projects.project_manager_id
order by project_managers.name
或
order by business_managers.name
但是对于两个order by,结果是一样的。我的结果是按第一个 profiles.name JOIN (project_managers.name) 排序的。
如何通过 project_managers.name 或 business_manager.name 正确订购?
最佳答案
像这样的东西会起作用
select * from (
select projects.id project_id
, project_managers.name project_managers_name
, business_managers.name business_managers_name
, ...
from projects
LEFT JOIN profiles project_managers
ON project_managers.id = projects.project_manager_id
LEFT JOIN profiles business_managers
ON business_managers.id = projects.project_manager_id
) projects
order by project_managers_name
关于sql - 按两个别名之一排序(对于同一个表的关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40312994/