求一关联sql语句

riyao 2005-04-16 09:40:11
我有一个表a,里面有(id,kid,mid)表示一个(kid)里面包含部件(mid)
比如:
id kid mid
1 1 1
2 1 2
3 1 5
4 2 3
5 2 7
6 2 100
现在我有一个数组值为:(a0,a1,a2,a3......)有N个
现在我要从a 表中统计 数组中所有值一起出现的次数。
我是这样写的:
sql="select b.id from a as b"
for i=1 to N-1
sql=sql & " ,a as b"&i
next
sql=sql & " where b.kid=b1.kid "
for i=2 to N-1
sql=sql & " and b"&(i-1)&".kid=b"&i&".kid"
next
sql=sql & " and b.mid=a0"
for i=1 to N-1
sql=sql & " and b"&i&".mid=a"&i
next

当N比较大时会出现 查询复杂 的错误
不知道有没有比较优化的sql语句呢?
还有。想知道一下它这个查询串的长度限制是多大?就是“,”后可以跟多长的限制?
谢谢。。。!!
...全文
231 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
riyao 2005-04-21
  • 打赏
  • 举报
回复
再UP
riyao 2005-04-19
  • 打赏
  • 举报
回复
唉。。。又要UP了。。。
dafei0320 2005-04-18
  • 打赏
  • 举报
回复
把SQL那几个函数都弄一遍-以后就X了!——
min max in order by having group by join…………
bingbingcha 2005-04-18
  • 打赏
  • 举报
回复
select count(*) as 总数,kid,mid from aa where mid in (2,5) group by mid,kid

得到的结果是:
--------------------------------------

mid kid 总数

1 2 1
1 5 1
3 2 1
3 5 1

--------------------------------------

如果需要统计的话用:
select count(*) from (select count(*) as 总数,kid,mid from aa where mid in (2,5) group by mid,kid) where mid=2

这个SQL语句统计mid为2的记录总数..
  • 打赏
  • 举报
回复
看不懂。。
riyao 2005-04-18
  • 打赏
  • 举报
回复
其实要得到这个结果是有很多种方法,,楼上几位也有的点到了。。

可是关键是,现在我要的集合,即要同时出现的个数有很多。。有可能达到100或更大。。
也就是说有可能不是(2,5),是(1,2,3,4……)N个之多。。。

请问有什么好的法子没有????

在此拜谢了。。。。
scoutlin 2005-04-18
  • 打赏
  • 举报
回复
select count(*) from a where (kid in (select kid from a where [mid]=2)) and [mid]=5
greenhornH 2005-04-18
  • 打赏
  • 举报
回复
多好的贴子阿,可惜我不会,也没看明白。。
riyao 2005-04-18
  • 打赏
  • 举报
回复
TO:bingbingcha(不思不归,不孟不E,原来是头大灰狼)
不好意思 ,我要的是当mid同时为(2,5)时的kid的个数。。
riyao 2005-04-18
  • 打赏
  • 举报
回复
to:liuxiaoyi666(兔子)
我的意思是当kid为1,时(2,5)一起出现,kid为3时,(2,5)又一起出现,也就是说在这个事务集中,(2,5)一起出现的次数为2.
  • 打赏
  • 举报
回复
就是在kid为1跟3的时候,2跟5有一起出现。你的意思是四种可能性还是两种可能性的??
riyao 2005-04-17
  • 打赏
  • 举报
回复
UP
HELP ME》》
riyao 2005-04-17
  • 打赏
  • 举报
回复
那如果像这个表,我怎么改才合适呢?
iuhxq 2005-04-17
  • 打赏
  • 举报
回复
同意白菜的方法
riyao 2005-04-17
  • 打赏
  • 举报
回复
比如说表里有如下的内容
id kid mid
1 1 1
2 1 2
3 1 5
4 2 3
5 2 7
6 2 100
7 3 2
8 3 5
我现在要查找mid为2和5,两个一起出现的次数,既kid的次数,
那应该是2次吧。就是在kid为1跟3的时候,2跟5有一起出现。
qunluo 2005-04-16
  • 打赏
  • 举报
回复
不些东西,不一定非用程序来完成,可以在想想怎么用表(合理的表)来设计处理问题,更直接简单!
baiyunfei 2005-04-16
  • 打赏
  • 举报
回复
当啷~~~~~我倒下了.......
你要的是什么样的结果啊?能不能举个例

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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