首页 新闻 会员 周边 捐助

sqlserver查询问题

1
悬赏园豆:10 [已解决问题] 解决于 2017-05-10 15:56

表结构如下:

 

我想要查询出 fAttrValue='春季'  AND fAttrValue=3 的fMId

目前想到想到一种方式:

先把同一个fMId的 fAttrValue拼成一个字符串,然后用like去查,但是效率低,而且对于数字不好使,看园友们有没有更好的方法。

~冰的主页 ~冰 | 小虾三级 | 园豆:509
提问于:2017-05-10 15:15
< >
分享
最佳答案
1
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'

我猜你应该想要表达的是这个意思

收获园豆:10
blue顺子 | 初学一级 |园豆:189 | 2017-05-10 15:36

好使,非常感谢,我想要拿到fMId,你的答案和让我发会呆的都不错

~冰 | 园豆:509 (小虾三级) | 2017-05-10 15:54

本着好奇的原则,想问下,他的意思是什么,按这个SQL语句不就是查  FAttrValue等于3 的结果集嘛

因为右边明显会全是NULL啊,不可能存在一个字段同时等于两个值啊

风醉 | 园豆:1197 (小虾三级) | 2017-05-10 17:13

@风醉: 我的意思就是要拿到fMid,比如上面表格中的1,2,3条,fMid相同,fAttrValue的值既等于'春季'又等于'3',满足条件,就是我想要的。

~冰 | 园豆:509 (小虾三级) | 2017-05-10 18:34

@gnib: 问题的所在是 同一个表字段,不可能 既等于'春季'又等于'3',,不符合逻辑,如果你有的话,贴个这样的数据格式看下

风醉 | 园豆:1197 (小虾三级) | 2017-05-12 14:29
其他回答(4)
0
where fAttrValue in ('春季','3')
BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2017-05-10 15:19

要同时满足满足才行

支持(0) 反对(0) ~冰 | 园豆:509 (小虾三级) | 2017-05-10 15:21
0

你一个字段怎么同时有两个值?

Daniel Cai | 园豆:10424 (专家六级) | 2017-05-10 15:30

可是它就有两个值,不然我就不困惑了

支持(0) 反对(0) ~冰 | 园豆:509 (小虾三级) | 2017-05-10 15:55
0

自己和自己内联,on的条件是 id不相等,where的条件是 a.fAttrValue='春季' and b.fAttrValue='3' 

让我发会呆 | 园豆:2929 (老鸟四级) | 2017-05-10 15:36

好使,不过差个条件MId要相等才行,非常感谢

支持(0) 反对(0) ~冰 | 园豆:509 (小虾三级) | 2017-05-10 15:53
0

本来很懂你的意思,fAttrValue字段等于春季又包含3

where fAttrValue like '%春季%3%'

但是看你回答其他人的答案,我就懵逼了

风醉 | 园豆:1197 (小虾三级) | 2017-05-10 15:49

你这个答案肯定不行了

支持(0) 反对(0) ~冰 | 园豆:509 (小虾三级) | 2017-05-10 15:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册