前两天论坛上求助了一个SQL问题,在众人的帮助下解决了问题,有此引发了我的SQL的执行顺序的思考!
我的问题是:
有三个表a1,b1,c1.
a1. aid a b c
001 1 2 3
002 4 4 5 b1. bid aid d e
001 001 er er
002 002 rr rr c1. cid bid f
001 001 a
002 001 b
003 001 c
现在我知道a1表的aid 我要的是b1表的记录且所有c1表里面含有c1.bid=b1.bid的记录的一个字段所有记录的字符连接在一起.
比如上面几个表可以直观看出 我有A1.aid 001 我要的结果是:b1 001,001 er er abc
在众人下写了个函数解决了问题:select b1.bid,b1.aid,d,e,f(bid) from a1,b1 where b1.aid=a1.aid and aid='001'
f函数不说大家应该也知道了,里面就是在c1表用游标把含有等于bid的记录的f字段连接起来
由此我就想,同一条SQL语句,是先查询出bid然后把参数传给f函数,还是怎么的?SQL的执行顺序到底怎样?到网上找没找到相关的资料,大家给点意见让我继续思考下去
我的问题是:
有三个表a1,b1,c1.
a1. aid a b c
001 1 2 3
002 4 4 5 b1. bid aid d e
001 001 er er
002 002 rr rr c1. cid bid f
001 001 a
002 001 b
003 001 c
现在我知道a1表的aid 我要的是b1表的记录且所有c1表里面含有c1.bid=b1.bid的记录的一个字段所有记录的字符连接在一起.
比如上面几个表可以直观看出 我有A1.aid 001 我要的结果是:b1 001,001 er er abc
在众人下写了个函数解决了问题:select b1.bid,b1.aid,d,e,f(bid) from a1,b1 where b1.aid=a1.aid and aid='001'
f函数不说大家应该也知道了,里面就是在c1表用游标把含有等于bid的记录的f字段连接起来
由此我就想,同一条SQL语句,是先查询出bid然后把参数传给f函数,还是怎么的?SQL的执行顺序到底怎样?到网上找没找到相关的资料,大家给点意见让我继续思考下去
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货