2012-01-05 64 views
2

比方說,我有兩個表: A有一個外鍵分爲B B有一個名爲「名稱」HQL不同的行爲無效外鍵

我需要爲每一行導致該返回列如果外鍵不爲空,則從B命名;如果外鍵爲空,則命名爲空。我正在使用NHibernate,並希望用此行爲來擴充我的HQL查詢。

謝謝。

的表看起來是這樣的:

A 
------ 
| ID | 
------ 
| 1 | 
| 2 | 
------ 

B 
-------------------- 
| ID | A_id | Name | 
-------------------- 
| 1 | 2 | Ben | 
-------------------- 

Results 
--------------- 
| A_id | Name | 
--------------- 
| 1 | NULL | 
| 2 | Ben | 
--------------- 
+0

協會在原始SQL,它會是這樣的:'從A.id = B.A_id'上的左外連接B中選擇B.name。 – cdeszaq 2012-01-05 19:35:01

+0

問題是我需要在結果中有一行,其中沒有B的B.A_id與A.id – 2012-01-05 20:12:45

+0

什麼?請在您的問題中添加ASCii-art(或其他)圖片,以顯示A表格,B表格(含數據)和生成的表格以及所需的結果。這會讓你更容易理解你以後的真實情況。 – cdeszaq 2012-01-05 20:14:47

回答

0
select a.ID as A_id, b.Name as Name from A a left outer join a.Bs b 

注:見一個別名和一個其燒烤

+0

我明白了,我遇到的問題是我試圖做更多的事情:「從A中選擇a.ID,aBName」。如果a.B爲空,則這不起作用。 – 2012-01-09 14:56:08