我有两个表“ user_rights”作为父表,“ assigned_rights”作为子表。我需要在表'assigned_rights'中显示没有子级的所有权限,如果有一个子级,我必须检查子级之一是否不等于user_id。

   SELECT   ur.right_id,
      ur.right_name,
      ur.right_description,
      ur.right_level,
      ura.user_id
   from user_rights  as ur
   left join assigned_rights as ura
   on ur.right_id = ura.right_id
   where ura.user_id is null or ura.user_id <> 'abc'


如果没有孩子,并且孩子和用户ID匹配字段'user_id',我的选择效果很好。问题是,是否有具有不同用户ID的子代。

最佳答案

如果您希望与孩子相关的人使用内部联接

 SELECT   ur.right_id,
      ur.right_name,
      ur.right_description,
      ur.right_level,
      ura.user_id
   from user_rights  as ur
   inner join join assigned_rights as ura
   on ur.right_id = ura.right_id
   where ura.user_id <> 'abc'

10-05 23:43