mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
merge
This commit is contained in:
@ -320,3 +320,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
|
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
|
||||||
2 DERIVED t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
2 DERIVED t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));
|
||||||
|
insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
|
||||||
|
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
|
||||||
|
min max avg
|
||||||
|
10.00 10.00 10
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -188,7 +188,6 @@ INSERT INTO t3 VALUES (1000,0.00),(1001,0.25),(1002,0.50),(1003,0.75),(1008,1.00
|
|||||||
select 497, TMP.ID, NULL from (select 497 as ID, MAX(t3.DATA) as DATA from t1 join t2 on (t1.ObjectID = t2.ID) join t3 on (t1.ObjectID = t3.ID) group by t2.ParID order by DATA DESC) as TMP;
|
select 497, TMP.ID, NULL from (select 497 as ID, MAX(t3.DATA) as DATA from t1 join t2 on (t1.ObjectID = t2.ID) join t3 on (t1.ObjectID = t3.ID) group by t2.ParID order by DATA DESC) as TMP;
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# explain derived
|
# explain derived
|
||||||
#
|
#
|
||||||
@ -206,3 +205,11 @@ insert into t2 values (1,7),(2,7);
|
|||||||
explain select a from t2 where a>1;
|
explain select a from t2 where a>1;
|
||||||
explain select a from (select a from t2 where a>1) tt;
|
explain select a from (select a from t2 where a>1) tt;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# select list counter
|
||||||
|
#
|
||||||
|
CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));
|
||||||
|
insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
|
||||||
|
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -3249,8 +3249,13 @@ select_derived:
|
|||||||
YYABORT;
|
YYABORT;
|
||||||
mysql_init_select(lex);
|
mysql_init_select(lex);
|
||||||
lex->current_select->linkage= DERIVED_TABLE_TYPE;
|
lex->current_select->linkage= DERIVED_TABLE_TYPE;
|
||||||
|
lex->current_select->parsing_place= SELECT_LEX_NODE::SELECT_LIST;
|
||||||
}
|
}
|
||||||
select_options select_item_list opt_select_from union_opt
|
select_options select_item_list
|
||||||
|
{
|
||||||
|
Select->parsing_place= SELECT_LEX_NODE::NO_MATTER;
|
||||||
|
}
|
||||||
|
opt_select_from union_opt
|
||||||
;
|
;
|
||||||
|
|
||||||
opt_outer:
|
opt_outer:
|
||||||
|
Reference in New Issue
Block a user