是否有一种简单的方法通过mysql中的行号连接行?

时间:2013-09-28 08:15:50

标签: mysql

所以,我有两个表,第一个有例如4个记录,第二个包含例如两排。它们没有任何关联,只是希望它们以图片上显示的方式一起显示。enter image description here 我知道可以通过计算行号并使用它们来加入它们,但我很好奇是否有办法在不使用变量的情况下做同样的事情。谢谢你的建议,对不起我的英文:)

1 个答案:

答案 0 :(得分:2)

是的,有一种方法可以在不使用变量的情况下完成,只需严格的SQL 看到此演示:http://www.sqlfiddle.com/#!2/2eeb2/4

不幸的是,MySql没有实现像Oracle,Postgre和MS-SQL这样的分析函数:如ROW_NUMBER() OVER (partition by ... order by ... )rownum类似于Oracle的伪列,并且在MySql中这样的查询性能非常差。

SELECT *
FROM (
  SELECT emp.*,
       (SELECT count(*)
        FROM emp e
        WHERE e.empno <= emp.empno
        ) rownum
  FROM emp
) e
LEFT JOIN (
   SELECT dept.*,
         (SELECT count(*)
          FROM dept d
          WHERE d.deptno <= dept.deptno
          ) rownum
   FROM dept
) d
ON e.rownum = d.rownum;