首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

求一条HQL话语,关于not in的惯例100分!

2012-09-28 
求一条HQL语句,关于not in的惯例100分!!!现有两张表1试题:choice,中间表2: paperchoice两表是多对多的关系

求一条HQL语句,关于not in的惯例100分!!!
现有两张表1试题:choice,中间表2: paperchoice 两表是多对多的关系 choice中有choiceId title 字段,choiceId是主键 
  paperchoice中有paperId choiceId字段为联合主键
现在要查询所有不在中间表中的试题 就是只要中间表有的 就不显示 唉表达的不清楚 用例子说明吧
 choice: choiceId title paperchoice: paperId choiceId
  1 111 7 1 
  2 222 7 2
  3 333 8 1 
  4 5555 8 3  
  5 888 8 4
  6 9999
  需要的结果是 : choice: choiceId title
  5 888
  6 9999 
  就这样子了 SQL语句也行 HQL语句也行 都有是最好 多学习点~~呵呵

[解决办法]
稍微改一下就可以了。。。

SQL code
select choiceId, titlefrom choice  where choiceId not in (select distinct(choiceId) from paperchoice where paperId = 7)
[解决办法]
select * from choice c where not exists(select 1 from paperchoice p where p.choiceId = c.choiceId and paperId = 7)

建议,能不用in 或 not in就不用,用exists或not exists来代替,in的性能太差!

热点排行