Sql查询问题

豆-芽-菜 2015-08-10 08:35:42


图示1、是我要查询的表数据,图2、是我查询的结果!问题是我要根据UserID查询具有相同的Key+Value值的结果、查询SQL如下:
Select distinct PropertyName,Value From bimproperties _outer
Where UserId IN (2,3,4) And
(Select COUNT(1) From bimproperties Where UserId IN (2,3,4) and PropertyName+Value=_outer.PropertyName+_outer.Value)=3 And Value<>''

现在的问题是用这种Sql查询,耗时太久,想换一种查询方式,不知道如何写Sql、还请各位大师帮帮忙!谢谢!
...全文
190 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
豆-芽-菜 2015-08-12
  • 打赏
  • 举报
回复
引用 2 楼 smartisanT1 的回复:
[quote=引用 1 楼 kk185800961 的回复:]
--是要这样?
SELECT PropertyName, Value
FROM bimproperties
GROUP BY PropertyName, Value
WHERE UserId IN(2,3, 4) AND Value<>''
HAVING COUNT(*)=3
HAVING COUNT(*)=3 这句代码目的是???[/quote]等于3是因为我那个UserID对应的in(2,3,4)这里面的值的个数是3
薛定谔的DBA 2015-08-11
  • 打赏
  • 举报
回复
--是要这样?
SELECT PropertyName, Value
FROM bimproperties
GROUP BY PropertyName, Value
WHERE UserId IN(2,3, 4) AND Value<>''
HAVING COUNT(*)=3
薛定谔的DBA 2015-08-11
  • 打赏
  • 举报
回复
引用 1 楼 kk185800961 的回复:
--是要这样?
SELECT PropertyName, Value
FROM bimproperties
GROUP BY PropertyName, Value
WHERE UserId IN(2,3, 4) AND Value<>''
HAVING COUNT(*)=3
筛选条件,PropertyName, Value 有3个相同的值则取出 PropertyName, Value
smartisanT1 2015-08-11
  • 打赏
  • 举报
回复
引用 1 楼 kk185800961 的回复:
--是要这样?
SELECT PropertyName, Value
FROM bimproperties
GROUP BY PropertyName, Value
WHERE UserId IN(2,3, 4) AND Value<>''
HAVING COUNT(*)=3
HAVING COUNT(*)=3 这句代码目的是???

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧