按外键分组的 SQL

安托斯

我有一个表格Channel,其中包含所有可用频道,还有另一个表格Channel_availableSpecs,我将频道 ID 链接到规格 ID。我已经做了一个inner join来获取频道名称。

我需要做的是基于checkedlistboxC#中的一个我想填充具有所选规格的所有可用频道的列表

我在 SQL 中编写了以下查询并且它有效,但是如果它们满足条件,它会显示所有记录,因此我有channel one四次,因为它具有规格 1、2、4 和 5。

select c.Name
from [dbo].[Channel_availableSpecs] asp
inner join [dbo].[Channel] c on asp.Channel_Id = c.ID 
where asp.ChennelSpec_Id IN ('1' , '2','4' ,'5')

所以我试图按频道id它们进行分组以便能够查看一次频道,所以我在确信它不起作用的情况下进行了尝试。

select c.Name
from [dbo].[Channel_availableSpecs] asp
inner join [dbo].[Channel] c on asp.Channel_Id = c.ID 
where asp.ChennelSpec_Id IN ('1' , '2','4' ,'5') Group by asp.Channel_Id

您能否帮助修复它以及如何处理规范 ID(而不是 1、2、4 和 5)的动态列表以使其成为条件。

谢谢!

阿列克谢·赫列诺夫

尝试使用子查询https://community.modeanalytics.com/sql/tutorial/sql-subqueries/

select subqueryResult.Name from 
(
select c.Name, asp.Channel_Id
    from [dbo].[Channel_availableSpecs] asp
    inner join [dbo].[Channel] c on asp.Channel_Id = c.ID 
    where asp.ChennelSpec_Id IN ('1' , '2','4' ,'5') 
) 
as subqueryResult
group by subqueryResult.Channel_Id

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章