【问题标题】:Webmatrix - displaying relevent data from joined SQL tablesWebmatrix - 显示连接 SQL 表中的相关数据
【发布时间】:2017-01-28 04:27:30
【问题描述】:

我被困在新网站上的列表页面。

我的数据库中有 2 个表,LocationLocation_Images,每个表都有一个公共字段 location_id

我想要创建一个位置列表,其中每个位置的名称都显示在其相关的图像旁边。

这是我的代码:

var db = Database.Open("StarterSite");
var selectCommand = "SELECT * FROM Location";
var searchTerm = "";
var selectedPlace = db.Query(selectCommand, searchTerm);

var selectImagesCommand = "SELECT loc_image_url FROM Location_Images JOIN Location ON Location_Images.location_id=Location.location_id";
var selectImagesTerm = "";
var selectedPlacePics = db.Query(selectImagesCommand, selectImagesTerm);


@foreach(var row in selectedPlace)
{
    @row.location_name;

    foreach(var pic in selectedPlacePics)
    {
        <img src="img/locations/@pic.loc_image_url" alt=".">;
    };

 }

在这个阶段,每个位置的所有图像都会显示。

任何帮助将不胜感激。

【问题讨论】:

  • 抱歉,所有位置都正确,如果这不是您想要的,请多解释一下
  • 我将数据库中的每张图片都显示在每个位置下,而不仅仅是链接到特定位置的那些。

标签: c# sql razor inner-join webmatrix


【解决方案1】:

您可以为此使用单个查询:

SELECT Location .*, Location_Images.loc_image_url FROM Location leftjoin Location_Images ON Location_Images.location_id=Location.location_id";

如果你想要一些过滤器,那么你可以使用 where 子句。

【讨论】:

  • 我将如何使用它?将它用于 selectCommand 没有影响。将它用于 selectImagesCommand 会导致 Location_Images 无法识别(令牌错误)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多