如何在查询中包含一个列以显示项目是否存在于另一个 table 中?
How do I include a column in a query that shows if item exists in another table?
我希望这是一时的推理失误。我有以下架构:
SELECT RoleName FROM aspnet_Roles; gives:
-----------------------------------------
Administrator
Backend
Business Manager
Content Editor
Employee
Salesperson
SELECT RoleName FROM aspnet_Roles r INNER JOIN admin_page_role apr ON r.RoleId = apr.RoleId WHERE apr.PageId = 4;
------------------------------------------
Administrator
Business Manager
Salesperson
我想要的是第一个查询的完整列表以及角色是否已分配,例如:
| RoleName | IsAssignedToPage
---------------------------------------
Administrator 1
Backend 0
Business Manager 1
Content Editor 0
Employee 0
Salesperson 1
我查看了 How to write a MySQL query that returns a temporary column containing flags... 是有道理的,但我的 admin_page_role table 是一个桥梁 table,可以包含许多页面角色组合。
像这样:
SELECT RoleName, case when apr.roleid is null then 0 else 1 end as IsAssignedToPage
FROM aspnet_Roles r
LEFT JOIN admin_page_role apr ON r.RoleId = apr.RoleId and apr.PageId = 4
我希望这是一时的推理失误。我有以下架构:
SELECT RoleName FROM aspnet_Roles; gives:
-----------------------------------------
Administrator
Backend
Business Manager
Content Editor
Employee
Salesperson
SELECT RoleName FROM aspnet_Roles r INNER JOIN admin_page_role apr ON r.RoleId = apr.RoleId WHERE apr.PageId = 4;
------------------------------------------
Administrator
Business Manager
Salesperson
我想要的是第一个查询的完整列表以及角色是否已分配,例如:
| RoleName | IsAssignedToPage
---------------------------------------
Administrator 1
Backend 0
Business Manager 1
Content Editor 0
Employee 0
Salesperson 1
我查看了 How to write a MySQL query that returns a temporary column containing flags... 是有道理的,但我的 admin_page_role table 是一个桥梁 table,可以包含许多页面角色组合。
像这样:
SELECT RoleName, case when apr.roleid is null then 0 else 1 end as IsAssignedToPage
FROM aspnet_Roles r
LEFT JOIN admin_page_role apr ON r.RoleId = apr.RoleId and apr.PageId = 4