我现在有一张表,上面每一行是一个ID,和ID的一种分类:Tag,每个ID可能会有很多个Tag,所以可能出现在很多行。现在希望查询到既拥有 Tag1,Tag2,Tag3...TagN的favorID集合,如果是只有两个ID的话,用一次inner join就可以了。就像:
Select row1 from table
Select row2 from talbe
where row1.Tag == Tag1 && row2.Tag == Tag2 && row1.ID == row2.ID
select row;以上是两个tag的情况,如果是三个tag得这样:
Select row1 from table
Select row2 from talbe
Select row3 from talbe
where row1.Tag == Tag1 && row2.Tag == Tag2 && row3.Tag == Tag3 && row1.ID == row2.ID && row2.ID == row3.ID
select row;所以tag的数目是变量,这个linq语句也会不同,不知道有什么办法可以处理,主要是不太了解linq语句的一些语法特性。
Select row1 from table
Select row2 from talbe
where row1.Tag == Tag1 && row2.Tag == Tag2 && row1.ID == row2.ID
select row;以上是两个tag的情况,如果是三个tag得这样:
Select row1 from table
Select row2 from talbe
Select row3 from talbe
where row1.Tag == Tag1 && row2.Tag == Tag2 && row3.Tag == Tag3 && row1.ID == row2.ID && row2.ID == row3.ID
select row;所以tag的数目是变量,这个linq语句也会不同,不知道有什么办法可以处理,主要是不太了解linq语句的一些语法特性。
解决方案 »
- 使用ADO.NET连接MS SQL Server出现无法解决的[DENETLIB][Connectionopen (Connect()).]SQL Server 不存在或拒绝访问
- SQL Server2005怎么样安装在windows XP上面?
- 一个远程注册数据库的小问题,高手请进……在线等之……
- SQL Server 有没有'数据字典'
- 报表服务器登陆问题!!!我没分了,但求知识。知识无价,我也付不起分!
- 救急!救急!急需Microsoft SQL 2000 Server 安装密码,散分100
- 如何将两个相同结构的表的记录用视图或者sql语句合并起来?
- 如何在SQL SERVER2000中设置大文本???
- SQL高手:这样的存储过程会不会发生死锁?
- 自学SQL Server 2012遇到问题,求教。
- 这样的一个需求该怎么写存储过程呢?
- 请教一个基本资料被引用的提示
SQL查询为select id
from table a
where not exists (select * from table b
where not exists (select * from table c
where c.id=a.id and c.id=b.id))
from table a
where not exists (select * from table b
where not exists (select * from table c
where c.id=a.id and c.Tag=b.Tag))
每一行只有一个tag,同一个id对应有很多行