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