日期:2014-05-19  浏览次数:20573 次

相关子查询的执行顺序
select   *   ,(select   username   from   membermaster   as   mm   where   mm.userid=um.userid)   from   usermaster   as   um
象这种语句是怎样的执行过程呢?请前辈帮忙解释一下谢谢

------解决方案--------------------
select * ,(select username from membermaster as mm where mm.userid=um.userid) from usermaster as um

sql都是逐行执行的 所以比如第一次 外面表有个子段 userid 先显示第一行
然后进入子查询 意思也就是第一行的时候userid= 1比如 那么子查询内部就用所有内部表
membermaster内的 userid 和um.userid比较 然后返回 想要显示的名字 这个内部不能返回两个值 因为你这种写法子查询只能有一个返回值