我想做一個全部在一個查詢,甚至是從三個表中拉出兩步查詢。需要幫助找到一個好的設計和架構
表#1:遊戲 - 該表中保持類型的遊戲和具有遊戲的描述等
表#2:GameProfiles - 此保持從表「遊戲」的ID,所以它們都有一個GamesId列。此表包含遊戲贏了,遊戲迷失等等
表#3:Games_WhateverGame - 這不是一個特定的表,有多個表,例如,如果我有一個遊戲BasketBall,將會有一個單獨的表因爲它叫做Games_BasketBall,它有自定義列取決於遊戲。例如,籃球隊將會有一個籃板球。該表將具有其自己的主鍵ID。
我可以很容易地將Games和GameProfiles一起在其常見的「GameId」列上使用內部聯接,但是如何使其成爲可以在相同查詢中動態取決於GamesId的「Games_BasketBall」 。我可能正在構思這個錯誤,所以我願意接受建議。我似乎不能想到一個真正流暢的方式使這項工作正確,因爲每個遊戲將有不同的配置文件實體,無論如何我想使關係到每個表容易,所以我可以拉一切查詢。
此代碼的查詢沒有與Games_Basketball的關係,我希望能夠將它全部放入一個閱讀器,以便它具有正確的信息。
using (SqlConnection myConnection = new SqlConnection(myConnectionString))
{
myConnection.Open();
String selectSql = "SELECT * FROM aspnet_GameProfiles INNER JOIN aspnet_Games ON aspnet_GameProfiles.GameId = aspnet_Games.GameId WHERE UserId = @UserId";
SqlCommand myCommand = new SqlCommand(selectSql, myConnection);
myCommand.Parameters.AddWithValue("@GameProfile", UserId);
reader = myCommand.ExecuteReader();
gameTable.DataSource = reader;
gameTable.DataBind();
myConnection.Close();
}
當您查詢多個gameType時,您將獲得每個gameType的唯一列。因此,對於用戶擁有10個gameType的查詢,如果每個gameType表有5列,則會得到〜50列。 – 2011-03-08 08:39:10
爲什麼你不能在一個查詢中返回多個結果集?您將在一個閱讀器中獲取所有結果集,只是在多個結果集中。但這是一次數據庫訪問。 – 2011-03-10 05:09:05