2012-11-26 139 views
2

我的問題是關於如何在hql查詢後解決「返回重複記錄」問題。這裏是一個例子: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)) 

這個查詢返回我正確的記錄,但是有些記錄返回多次。我想我知道原因。在「OR」之前(「WHERE」和「OR」之間),「table2 t2」沒有被使用。 我如何避免重複記錄?

謝謝

回答

0

如果粘貼的是SQL輸出(不HQL),問題是,這種說法並不正確地聯接表。

我所期望的表t0t1t2有某種相互之間的關係和查詢應該包含WHERE t0.foo = t1.bar AND t1.baz=t2.bah。由於缺少這些信息,預計會有重複結果。