我没有得到的一部分查询;这些内部联接在做什么?
我有表speeldatum,包含所有数据,在我的project.below查询中正在更改rownum列的值,我怎么理解。在查询中没有内部联接的情况下,rownum列的值为零,我对查询中mysql用户定义的vriable没有正确的理解。
样本输出(不考虑ROWNUM值的顺序)
....,
rownum 0
....
...,
rownum 1,
...
...
rownum 2,
...
from speeldatums as t
inner join (select @rownum:=0) as r
inner join (select @prev:="") as r2
inner join (select @prevdatum:="") as r3**
完整查询:
'create temporary table rr_prepare ( rownum INT NOT NULL, datum_unix
INT(11) NULL, categorie VARCHAR(20) NOT NULL, entry_id INT NOT NULL,
INDEX(rownum), INDEX(datum_unix), INDEX(categorie), INDEX(entry_id) )
ENGINE=MyISAM
select t.*, @rownum:=if(@prev=t.categorie and
@prevdatum=t.datum,@rownum+1,0) as rownum, @prev:=t.categorie as
prevcategorie, @prevdatum:=t.datum as prevdatum
from speeldatums as t inner join (select @rownum:=0) as r
inner join (select @prev:="") as r2
inner join (select @prevdatum:="") as r3 ';
答案 0 :(得分:0)
连接引入了一些变量并在查询中初始化它们。
您也可以在2个查询中单独执行此操作:
set @rownum:=0;
select @rownum := rownum + 1, .... ;
但是,如果您只想运行一个查询,可以使用子选择在查询中即时声明和初始化变量
... inner join (select @rownum:=0) r ...