したがって、2 つのテーブルがあり、最初のテーブルにはたとえば 4 つのレコードがあり、2 つ目のテーブルにはたとえば 2 つの行が含まれています。それらは決して関連していません。写真に示されている方法で一緒に表示したいだけです。 行番号を計算してそれらを使用して結合することで実行できることはわかっていますが、変数を使用せずに同じことを行う方法があるかどうか知りたいです。あなたのアドバイスをありがとう、そして私の英語でごめんなさい:)
質問する
2201 次
1 に答える
2
はい、変数を使用せずにそれを行う方法があります。単純な SQLです。
このデモを参照してください: http://www.sqlfiddle.com/#!2/2eeb2/4
残念ながら、MySql は Oracle、Postgre のような分析関数を実装していません。 MS-SQL: Oracle のような疑似列ROW_NUMBER() OVER (partition by ... order by ... )
でもなくrownum
、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 に答える