问题描述
现在有一张表(表A),这张表里有三个主要字段~~~!用户名称项目名称技能ID意思就是,当前用户,在当前项目中所拥有的技能select*from表A(此处为了简便,直接把技能名写了,其实技能只是一个外键,关联另外一张技能表)用户项目技能张三OAjava张三OA.net张三ERPjava李四ERPjava李四ERP.net张三ORMC++王五ORM.net注意:张三在OA项目中拥有JAVA技能,并且在ERP项目中也拥有JAVA技能现在有一个需求就是有一个标签列表,为checkbox。里面包含所有的技能当我勾选了某个或某几个技能然后点查询,要查出和这几个技能相关的人员例如当我勾选了java和.net技能时查询结构如下用户技能张三java,.net李四java,.net王五java此查询应该怎么查??我想破脑袋也想不出呀,跪求各位大侠帮帮忙
解决方案
解决方案二:
select用户,b.技能,c.技能from(select*fromAwhere技能='java',用户in(select用户fromAwhere技能='.net')b)c
解决方案三:
引用1楼lingxiaotian的回复:
select用户,b.技能,c.技能from(select*fromAwhere技能='java',用户in(select用户fromAwhere技能='.net')b)c
问题是跟本不知道别人会勾选几个技能呀,也许只会勾一个,也许全勾
解决方案四:
有点像行转列
解决方案五:
Stringsql="select用户,技能from表Awhere1=1",然后进行选框判断,如果选择了java,sql=sql+"or技能=java",依次判断吧..没想到更好的呵呵
解决方案六:
引用2楼gmclass的回复:
引用1楼lingxiaotian的回复:select用户,b.技能,c.技能from(select*fromAwhere技能='java',用户in(select用户fromAwhere技能='.net')b)c问题是跟本不知道别人会勾选几个技能呀,也许只会勾一个,也许全勾
可以查询很多次呀!再在service层里面处理
解决方案七:
select用户,wm_concat(技能)fromtabletwheret.技能in(java,.net...)andt.用户=用户
oracle10g以上支持