现在有一张表(表A),这张表里有三个主要字段~~~!
用户名称
项目名称
技能ID意思就是,当前用户,在当前项目中所拥有的技能select * from 表A  (此处为了简便,直接把技能名写了,其实技能只是一个外键,关联另外一张技能表)用户    项目    技能
张三    OA      java
张三    OA      .net
张三    ERP     java
李四    ERP     java
李四    ERP     .net
张三    ORM     C++
王五    ORM     .net注意:张三在OA项目中拥有JAVA 技能,并且在ERP项目中也拥有JAVA技能现在有一个需求   就是 有一个标签列表,为checkbox  。  里面包含所有的技能
当我勾选了某个或某几个技能 然后点查询,要查出和这几个技能相关的人员
例如 当我勾选了java和.net技能时 查询结构如下用户      技能
张三      java,.net
李四      java, .net
王五      java此查询应该怎么查??我想破脑袋也想不出呀,跪求各位大侠帮帮忙

解决方案 »

  1.   

    select 用户,b.技能,c.技能 from (select * from A where 技能='java',用户 in (select 用户 from A where 技能='.net') b) c
      

  2.   

    String sql = "select 用户,技能 from 表A where 1 = 1",然后进行选框判断,如果选择了java,sql = sql+"or 技能=java",依次判断吧..没想到更好的呵呵
      

  3.   


    可以查询很多次呀!再在service层里面处理
      

  4.   


    select 用户, wm_concat(技能) from table t where t.技能 in(java,.net...) and t.用户 = 用户
    oracle10g以上支持