如何在查询中包含一个列以显示项目是否存在于另一个 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