为什么它不从数据库中获取DISTINCT类别

时间:2015-07-14 06:25:18

标签: asp.net webmatrix

我有一个包含id和Category列的表。我想从数据库中仅获取DISTINCT类别,但它无法按预期执行。它将输出作为表中的所有类别。

我有这段代码:

var selectUniqueCategory="SELECT DISTINCT(Category),id FROM images";
var SelectedUniqueCat=db.Query(selectUniqueCategory,category,id);




@foreach(var row in SelectedUniqueCat)
{
                <p><a href="#" data-target="#row_thumbnails">@row.Category </a>
                   <a href="/EditCategory?id=@row.id">&nbsp;<span class="glyphicon glyphicon-pencil"></span></a>
                 </p>
}

对于每个循环,我想执行两个任务:

1:从表

获取DISTINCT类别

2:获取id列并将与该类别相关的每个id传递给id =@row.id

如果我从Query中删除id,例如:

var selectUniqueCategory="SELECT DISTINCT(Category) FROM images";
var SelectedUniqueCat=db.Query(selectUniqueCategory,category);

从表中获取DISTINCT类别可以正常工作,但我想在表中将类别作为DISTINCT和id作为主要类型。

2 个答案:

答案 0 :(得分:-1)

你应该按照catergory进行分组并取最大值:

SELECT Category,max(id) as idmax , min(id) as idmin FROM images GROUP BY Category

答案 1 :(得分:-2)

您可以在“类别”列上使用GROUP BY并省略DISTINCT,这只会显示找到的第一个类别的ID。

SELECT Category,id FROM images GROUP BY Category