当前位置:编程学习 > C#/ASP.NET >>

跪求SQL问题

兄弟们帮帮我, 有个表, 表结构如下:1、图片编号, 2、图片标签ID, 这个表里存放着图片所对应的所有标签关系,是一对多的关系,问我怎么查询出,完全符合我已知标签ID的集合, 比如,我现在有标签ID 2,3,4  要求返回完全符合2,3,4标签的图片ID,兄弟们帮我看看吧 --------------------编程问答-------------------- select [图片编号] from .... [图片标签ID] in (2,3,4) --------------------编程问答-------------------- 你一个表   咋是 一对多的关系??

--------------------编程问答-------------------- 首先感谢兄弟们回答,2楼说的不对的 ,应为表里数据是这样的
图片ID     标签ID
1           3
1           4
1           5
2           1
2           3
2           7
3           1
3           5
3           7
3           4
如果我有标签号为 1,5 那么应该返回的图片ID是 3因为他含有1,5
谢谢 --------------------编程问答-------------------- select [图片编号],[图片标签ID] from (select [图片编号],[图片标签ID] from(select [图片编号],[图片标签ID] from [表名] where [图片标签ID] =2) where [图片标签ID]=3) where [图片标签ID]=4 and [图片标签ID] in(2,3,4) --------------------编程问答-------------------- 呵呵。 --------------------编程问答-------------------- select [图片编号],[图片标签ID] from (select [图片编号],[图片标签ID] from(select [图片编号],[图片标签ID] from [表名] where [图片标签ID] =2) where [图片标签ID]=3) where [图片标签ID]=4 and [图片标签ID] in(2,3,4) --------------------编程问答-------------------- 感谢,楼上兄弟写的,不过我看了一下似乎还是不对的,子查询最里面的把 [图片标签ID] =2 做为条件,出来一层后又把 [图片标签ID]= 3 做为条件, 肯定不行的,这样到最后一条记录也没查到。

我的思路是这样的

select [图片编号], count(*) from [表名] where [图片标签ID] in(1,5)
group by pictureattributemapping_pictureitem having count(*) >= 2

1,5其实是我从另外的表里通过像似搜索查出来的,2代表查出来有两条记录。但是总觉的这样写不好,我用的是SQL SERVER 2005 请高教高手好的写法 。

--------------------编程问答--------------------
declare @t table(picID int, LabelID int)
insert into @t select 1, 3
union select 1, 4
union select 1, 5 
union select 2, 1
union select 2, 3
union select 2, 7
union select 3, 1
union select 3, 5
union select 3, 7
union select 3, 4

select a.* from  (select * from @t where LabelID = 1) as a
inner join (select picID from @t where LabelID = 5) as b on a.picID = b.picID

(10 行受影响)
picID       LabelID
----------- -----------
3           1

(1 行受影响)

--------------------编程问答-------------------- 感谢xie_yanke 兄再次复贴,你的那句语句虽然能够找到问题,但是有一点, 因为我的参数传过来的是,未知的,是在 存储过程里写的, 照你这个写法可能就要写成动态SQL了。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,