SQL SERVER 1到多个 - 按查询分组

时间:2014-03-31 14:32:00

标签: sql-server

我有2个表类别&小类
我需要创建一个查询来显示类别名称和每个所有子类别下的内容(ID +名称)
这样的事情:

Category1
Sub101
sub102
sub103

Category2
sub201
sub202

Category3
sub301
sub302

我知道我可以为每只猫计算子序列,但我也需要显示它们的名字 我试过这个问题:

    select distinct CatID,  COUNT(SubcategoryID)
    from Subcategory
    group by CatId

另一个问题:

    select distinct CatName, SubcategoryName , COUNT(SubcategoryName)
    from Categories, Subcategory
    group by CatName,SubcategoryName

我需要稍后将其绑定到asp.net中的下拉列表 任何想法?
谢谢!

2 个答案:

答案 0 :(得分:2)

这样的东西?

select distinct CatID, 0 as Header, CatName
from Categories
UNION
select distinct CatID, 1, SubcategoryName
from Subcategory
Order by CatId, Header, CatName

这使用CatId将所有类别和子类别组合在一起。然后1 \ 0确保类别排序到顶部,最后CatName \ SubcategoryName按字母顺序排序。

如果重复使用子类别,则选择不同于子类别可能存在问题,但如果我们来到它,我们可以越过该桥梁。

答案 1 :(得分:0)

尝试使用WHERE Exists子句,例如

SELECT
FROM 
WHERE EXISTS 
( SELECT            
         FROM 
         INNER JOIN       
         ON 
         WHERE "you can also use AND" )
GROUP BY 

希望这有帮助