select @row_id:=@row_id+1 as ID,a.America from
(select name as America from student where continent='America' order by America asc) a ,
(select @row_id:=0) b
1.首先定义一个变量并初始化为0。 @row_id:=0
定义的形式为 select @row_id:=0
然后将这张表和自己要查的表一块 查,查询的时候将变量增长1
也就是 select @row_id:=@row_id+1,x列 from
() a, (select @row_id:=0) b
注意! 如果是想通过生成的序号来做关联,
两张表的序号变量不能是同一个!
这里用了@row_id, @row_id2 ,@row_id3 三个自定义变量
如果三张表使用同一个的结果就是 @row_id:=@row_id+1 每一行都被执行三次,这样生成的序号三张表是不一样的
select a1.America,a2.Asia,a3.Europe from
(select @row_id:=@row_id+1 as ID,a.America from
(select name as America from student where continent='America' order by America asc) a ,
(select @row_id:=0) b ) a1
left join
(select @row_id2:=@row_id2+1 as ID,a.Asia from
(select name as Asia from student where continent='Asia' order by Asia asc) a ,
(select @row_id2:=0) b ) a2 on a1.ID=a2.ID
left join
(select @row_id3:=@row_id3+1 as ID,a.Europe from
(select name as Europe from student where continent='Europe' order by Europe asc) a ,
(select @row_id3:=0) b ) a3 on a1.ID=a3.ID
762

被折叠的 条评论
为什么被折叠?



