我的问题是如何解决hql查询后“返回重复记录”。这是一个例子:
SELECT t0 FROM table0 t0, table1 t1, table2 t2 WHERE
(((t0.a = 1 AND t0.b = 2 AND t0.c = 3) AND (t1.a = 4 AND t1.b = 5 AND t1.c = 6))
OR
((t0.a = 7 AND t0.b = 8 AND t0.c = 9) AND (t1.a = 10 AND t1.b = 11 AND t1.c = 12) AND (t2.a = 13 AND t2.b = 14 AND t2.c = 15))
此查询正确返回记录,但有些记录会多次返回。我想我知道原因。 “table2 t2”未在“OR”之前的条件中使用(在“WHERE”和“OR”之间)。 我怎样才能避免重复记录?
谢谢
答案 0 :(得分:0)
如果你粘贴的是SQL输出(不是HQL),问题是这个语句没有正确地加入表。
我希望表t0
,t1
和t2
之间存在某种关系,查询应包含WHERE t0.foo = t1.bar AND t1.baz=t2.bah
。由于缺少这一点,预计结果会重复。