当前位置: 首页 > 知识库问答 >
问题:

当第二个表中的布尔值为TRUE时,用第一个表重写第二个表的结果

左丘修齐
2023-03-14
       role_cap                                    enduser_cap
       _____________________________________      _____________
       role_id  user_cap_id  is_present           id  user_cap_id is_granted
       -------------------------------------      -------------------------
       8        29            false               17    50         true
       7        32            true                21    30         true
       8        30            false               66    20         false
       8        13            true                21    29         true
       8        11            false

我希望role_cap表的所有user_cap_id都具有role_id=8,其is_presentenduser_capid=21is_grant重写。

结果应该变成:

_________________________      
user_cap_id  
-------------------------
29
30
13

我可以通过单独的查询获得它,例如:

select * from role_cap where role_id = 8
select * from enduser_cap where id = 21

第二个查询的结果应该合并到第一个查询中,这样:“当第二个表中的boolean为TRUE时,用第一个表覆盖第二个表的结果”

role_cap和enduser_cap表中的正确值都应该成为结果的一部分。但是,如果对于相同的user_cap_id,role_cap有FALSE条目,而enduser_cap有TRUE条目,那么enduser_cap的TRUE将被赋予优先级。

共有1个答案

壤驷高洁
2023-03-14

听起来像是操作,检查用户在id=21的enduser_cap表中是否为true,或者在role_cap本身中是否为true。

select user_cap_id
from role_cap r
where role_id = 8
    and (
        exists (
            select 1
            from enduser_cap u
            where u.user_cap_id = r.user_cap_id
                and id = 21
                and is_granted
            )
        or is_present
        );
 类似资料:
  • 我有三张桌子,桌子A,桌子B和桌子C 我想将数据从TableA列DateA迁移到TableB列DateB,仅当表B中的date字段为空时(我不想覆盖任何现有数据) 我需要使用TableC连接TableA和TableB,以匹配应按其RobotNumber更新的A行和B行。 表格a 表格c 我尝试连接这些表并执行如下更新,但查询超时:

  • 问题内容: 我有这样的结构: 我想使用内置方法(在一行中)对整数()求和。 有任何想法吗? 问题答案: 会工作。

  • 我有三张桌子: 表名:流派 表字段:id、名称 例1,行动 我试图有一个查询,得到所有的信息从动漫,也得到我的动漫的流派名称。 我有以下疑问: 这让我得到了动漫信息和所有流派的主要ID,但我没有他们的名字。 我一直在研究,但也许我做得不对。 顺便说一句,“动漫”是一个电视节目,所以它可以有多种流派,一对多的关系。

  • 所以我写了一个代码,显示列表中重复次数最多值和重复时间。但是我不知道如何显示第二个,第三个等重复值。如果您提供帮助,将不胜感激。 代码如下:

  • 我有两个表客户和订单,下面是结构。 表-客户 ID customer_name 表-订单 ID order_id customer_id customers表包含customers记录,orders表包含客户下的订单, orders表中的customer_id链接到customers表的id字段。 现在一个客户可以有零或一个或多个订单,我想要得到客户下的最后一个订单只。 当我运行以下查询(一个简单

  • 使用map从两个字符串列表中获取对象列表时,我有点困惑。 让我们举个例子:列表1: 清单2: 名称的数据类如下 现在我想要一个列表,它是name和lastName的组合,我们使用name索引来获取lastName。 作为输出的名称列表如下: 请求使用rx kotlin函数。通过使用集合很容易解决。