代码之家  ›  专栏  ›  技术社区  ›  Marged

如何通过JDBC查询Oracle中的交叉点

  •  0
  • Marged  · 技术社区  · 6 年前

    我需要从Java检查某个用户是否至少有一个组成员。在Oracle中(顺便说一下,是12个),有一个大的able看起来像这样:

    DocId  | Group
    -----------------
        1  | Group-A
        1  | Group-E
        1  | Group-Z
        2  | Group-A
        3  | Group-B
        3  | Group-W
    

    docId = 1
    listOfUsersGroups = { "Group-G", "Group-A", "Group-Of-Something-Totally-Different" }
    

    我见过这样的解决方案 this ,但这不是我想采用的方法。我想这样做(我知道这是不正确的语法)。。。

    SELECT * FROM PERMSTABLE WHERE DOCID = 1 AND ('Group-G', 'Group-A', 'Group-Of-Something-Totally-Different' ) HASATLEASTONE OF Group
    

    ... 并且不使用任何临时SQL插入。结果应该是,在执行此查询后,我知道我的用户有一个匹配项,因为他是 Group-A .

    1 回复  |  直到 6 年前
        1
  •  1
  •   karthik manchala    6 年前

    您可以这样做(在条件中使用):

    SELECT * FROM PERMSTABLE WHERE DocId = 1 AND Group IN 
                ('Group-G', 'Group-A', 'Group-Of-Something-Totally-Different')