表结构如下:
我想要查询出 fAttrValue='春季' AND fAttrValue=3 的fMId
目前想到想到一种方式:
先把同一个fMId的 fAttrValue拼成一个字符串,然后用like去查,但是效率低,而且对于数字不好使,看园友们有没有更好的方法。
select * from dbo.Table as a left join (select * from dbo.Table where fAttrValue = N'春季') as b on a.fMId = b.fMId where a.FAttrValue = N'3'
我猜你应该想要表达的是这个意思
好使,非常感谢,我想要拿到fMId,你的答案和让我发会呆的都不错
本着好奇的原则,想问下,他的意思是什么,按这个SQL语句不就是查 FAttrValue等于3 的结果集嘛
因为右边明显会全是NULL啊,不可能存在一个字段同时等于两个值啊
@风醉: 我的意思就是要拿到fMid,比如上面表格中的1,2,3条,fMid相同,fAttrValue的值既等于'春季'又等于'3',满足条件,就是我想要的。
@gnib: 问题的所在是 同一个表字段,不可能 既等于'春季'又等于'3',,不符合逻辑,如果你有的话,贴个这样的数据格式看下
where fAttrValue in ('春季','3')
要同时满足满足才行
你一个字段怎么同时有两个值?
可是它就有两个值,不然我就不困惑了
自己和自己内联,on的条件是 id不相等,where的条件是 a.fAttrValue='春季' and b.fAttrValue='3'
好使,不过差个条件MId要相等才行,非常感谢
本来很懂你的意思,fAttrValue字段等于春季又包含3
where fAttrValue like '%春季%3%'
但是看你回答其他人的答案,我就懵逼了
你这个答案肯定不行了