我有一个表Channel
,其中有所有可用的通道,还有另一个表Channel_availableSpecs
,其中将通道ID链接到规格ID。我已经完成了inner join
的操作以获取频道名称。
我需要执行的操作基于C#中的checkedlistbox
。我要填充具有选定规格的所有可用通道的列表。
我用SQL编写了以下查询,它可以工作,但是如果满足条件,它将显示所有记录,因此,我有四次channel one
,因为它的规格为1、2、4和5。 / p>
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)以使条件成立。
谢谢!
答案 0 :(得分:0)
尝试使用子查询 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