我正在尝试做一些我经常看到的事情,但我无法找到最好的方法来做到这一点。
我有以下查询:
"SELECT * FROM Property_Info INNER JOIN RateInfo ON Property_Info.PropertyID=RateInfo.RateID"
由此,我执行以下 foreach 循环来显示我的所有属性。
foreach(var row in queryResults){
<div class="row">
<h4>@row.PropertyName</h4>
<h5>Prices from: xxxx</h5>
</div>
}
我遇到的问题是,我需要在连接表(RateInfo)上执行“SELECT TOP 1”以显示每个属性的最低价格。我需要在 foreach 循环中显示这一点,我已将 xxxx 放置在其中
我需要编写单独的 SQL 查询吗?如果是这样,我如何将它绑定(bind)到 foreach 循环中的适当条目。
表信息:
属性信息表 - 属性(property)ID, 属性名称
费率信息表 - PropertyID(这与其他表中的 PropertyID 匹配), 费率ID, 费率名称, 费率值
最佳答案
SELECT
pi.PropertyID,
pi.PropertyName,
MIN(ri.Rate) AS LowestRate,
MAX(ri.Rate) AS HighestRate
FROM
Property_Info pi
INNER JOIN
RateInfo ri ON pi.PropertyID = ri.PropertyID
GROUP BY
pi.PropertyID,
pi.PropertyName
对代码的更改是在表名称上使用别名,以便更容易再次引用它们,并使用 GROUP BY
让我们对 RateInfo 中的数据执行聚合函数
表。希望这就是您所需要的?
关于c# - WebMatrix - 内连接和 Foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639751/