2

我的问题是关于如何在 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”之间)。如何避免重复记录?

谢谢

4

1 回答 1

0

如果您粘贴的是 SQL 输出(不是 HQL),则问题是该语句没有正确地 JOIN 表。

我希望表t0t1并且t2彼此之间具有某种关系,并且查询应该包含WHERE t0.foo = t1.bar AND t1.baz=t2.bah。由于缺少此内容,因此预计结果会重复。

于 2012-11-26T10:22:52.843 回答