SQL连接表和内连接?

时间:2015-05-11 17:39:40

标签: sql join razor

我有3张桌子。产品,步骤和图片。

  • 产品字段:Id,Name
  • 步骤字段:Id,ProductId,Description
  • 图片字段:Id,StepId,Picture

我正在使用Microsoft Visual Studio和Razor,目前我正在使用UrlData来加载数据库中正确的表和字段。 www.example.com/Id=1(显示产品#1)

var productId = UrlData[0].AsInt();
var product = db.QuerySingle("SELECT * FROM Steps WHERE Id = @0", productId);

我已经成功地提取了我想要显示的数据,但现在的问题是使用非常简单的+1 UrlData或-1 UrlData进行下一步或后退。显然,如果删除某个步骤并且网站不会在产品的步骤结束时停止,这将无效。

我现在处于这一点我相信我需要使用连接表我需要使用UrlData显示3个表中的所有数据。

我创建了一个测试连接表ex:“joinTest” 字段:Id,PictureId,StepId,ProductId

如何查询此表以显示第一段中的上述所有数据?

我的剃刀查询的更多示例:

string description = product.description;
var step = db.QuerySingle("SELECT * FROM Products WHERE Id = @0", product.ProductId);
var steps = db.Query("SELECT Id, StepName FROM Steps WHERE ProductId = @0", productId).ToList();
var photos = db.Query("SELECT Id, FileTitle FROM Pictures WHERE StepId = @0", productId).ToList();

2 个答案:

答案 0 :(得分:1)

您无需为此添加新表。只是现有NextStepId表的新字段StepSeqNumSteps。您还需要将当前步骤添加到Url。

答案 1 :(得分:0)

如果您只想显示3个表中的数据,为什么要创建第三个表?只是做:

p_load

但是我不认为这会解决+1或-1的问题,实际上我看不到那个和join命令之间的关系!

在更改页面之前加载包含所有可用ID的数组不是更好吗?

您可以指定任何列,您将看到所需的所有数据。

你想要的吗?