我有这个结构:
表1 表 2 id_t1 id_t2 id_t2
现在,我需要在单个查询中通过 id_t2 枚举 table2 中的行。
输出示例:
枚举 id_t1 id_t2 1 1 1 2 2 1 3 3 1 1 4 2 2 5 2 4 6 1
导致使用每个 id_t2 的独占索引枚举的行。
我知道我必须使用变量(如@ennum)并且我已经能够在全局范围内枚举它们,但我还没有找到正确的方法来做到这一点。
提前致谢。
试试这个,
SELECT g.ennum,
g.id_t1,
g.id_t2
FROM
(
SELECT t.id_t1,
t.id_t2,
@running1:=if(@previous1=concat(t.id_t2),@running1,0) + 1 as ennum ,
@previous1:=concat(t.id_t2)
FROM TableName t
) g
ORDER BY ID_T2, ennum
好的,感谢@JW。我想我明白了:
为此在 phpmyadmin 中工作:
结果是:
SET @running1:=0;
SET @previous1:=0;
SELECT g.ennum,
g.id_t1,
g.id_t2
FROM
(
SELECT t.id_t1,
t.id_t2,
@running1:=if(@previous1=concat(t.id_t2),@running1,0) + 1 as ennum ,
@previous1:=concat(t.id_t2)
FROM TableName t
ORDER BY id_t2
) AS g
ORDER BY id_t2, ennum