2016-04-04 84 views
0

我有這樣一些數據:查詢優化多對多

  1. 主場1

    1.record 1

    2.record 2

    3.record 3

  2. 首頁2

    1.record 2_1

    2.record 2-2

  3. 主場3

    1.record 3_1

和我有三個表識別和標識字段和IdentityFieldValue

[sqlServer 2012] 

identity 
    identityId 

identityField 
    identityFieldid 

IdentityFieldValue 
    identityId 
    identityFieldid 
    value 

如何使用一個q獲取記錄uery和兩個for循環使用?

for(home in homes) 
{ 
    for(field in home.fields) 
    { 
    } 
} 
+0

家庭/記錄和身份*表之間的關係不清楚。你能解釋一下嗎? –

+0

我以身份儲存房屋,儲存家居物業,如牀,浴缸......等身份識別儲存物品,像這樣的家1,牀,3(帶ID) – Fadakar

+0

每個房屋都有一些字段,我想把它們一個查詢 – Fadakar

回答

1

很難知道你需要的數據量有限,這是你需要什麼?

SELECT * 
FROM identity ID 

INNER JOIN IdentityFieldValue IFLV 
ON IFLV.identityId = ID.identityId 

INNER JOIN identityField IFL 
ON IFL.identityFieldid = IFLV.identityFieldid 
+0

我正在回答這樣的問題,所以我想我們是在在理解問題的頁面中的相同頁面:) @Fadakar:如果這就是你正在尋找的,你可能想要改變你的數據庫設計。根據我們所掌握的信息,IdentityField和IdentityFieldValue表沒有任何理由:它們應該由Identity表中的字段替換。 –