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