我想做一个全部在一个查询,甚至是从三个表中拉出两步查询。需要帮助找到一个好的设计和架构
表#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