說我有一個包含兩個表的數據庫:類和學生。每個表格都包含有關相關主題的元數據。例如,班級包含'classid','name'和'room_number'字段,學生包含'name','classid','age'和'height'字段(例如學生只能在一個班級中)。HQL:在對象上使用元素()
如果我想編寫一個HQL查詢以獲得所有包含姓名爲'Joe','Bob'和'Fred'的學生的課程,該怎麼辦?如果學生只包含'classid'和'name',我想我可以在HQL中編寫以下內容。
from Classes as class where
'Joe' in elements(class.students) and
'Bob' in elements(class.students) and
'Fred' in elements(class.students)
但是,在這種情況下,學生是一個對象。我是否需要明確執行連接?
from Classes as class
join class.students as s1
join class.students as s2
join class.students as s2
where
s1.name = 'Joe'
s2.name = 'Bob'
s3.name = 'Fred'
我想,用'Fred' in elements
也執行這些連接,但它更緊湊寫!還是有更好的方法來完成這一切?
我還可以使用子查詢。我猜想連接更容易優化 - 但我真的不知道。有沒有簡單的方法來組成嵌套的子查詢? – schmmd