Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MemSQL-追加查询类型对象_Sql_Stored Procedures_Singlestore - Fatal编程技术网

MemSQL-追加查询类型对象

MemSQL-追加查询类型对象,sql,stored-procedures,singlestore,Sql,Stored Procedures,Singlestore,MemSQL定义了可在存储过程中使用的查询类型对象 例如,您可以执行以下操作: v_q QUERY(a INT,b INT)=选择1作为a,选择2作为b 我想做的是附加不同的查询对象,类似于下面两个选项中的任何一个: 鉴于: q_1 QUERY(a INT, b INT) = SELECT 1, 2; q_2 QUERY (a INT, b INT) = SELECT 2, 3; 第一种方法: q_3 QUERY(a INT, b INT) = q_2 + q_3; ECHO q_3; EC

MemSQL定义了可在存储过程中使用的查询类型对象

例如,您可以执行以下操作:
v_q QUERY(a INT,b INT)=选择1作为a,选择2作为b

我想做的是附加不同的查询对象,类似于下面两个选项中的任何一个:

鉴于:

q_1 QUERY(a INT, b INT) = SELECT 1, 2;
q_2 QUERY (a INT, b INT) = SELECT 2, 3;
第一种方法:

q_3 QUERY(a INT, b INT) = q_2 + q_3;
ECHO q_3;
ECHO q_2 + UNION SELECT 9, 10;
第二种方法:

q_3 QUERY(a INT, b INT) = q_2 + q_3;
ECHO q_3;
ECHO q_2 + UNION SELECT 9, 10;

有没有办法做到这一点?

您可以将查询类型变量看作是表示select语句或视图的变量,因此您的第一种方法可以扩展为:

q_3 QUERY(a INT, b INT) = (SELECT 1, 2) as q_1 + (SELECT 2, 3) as q2;
q_3 QUERY(a INT, b INT) = (SELECT 2, 3) as q_2 + UNION SELECT 9, 10;
q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;
q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;
您的第二种方法扩展为:

q_3 QUERY(a INT, b INT) = (SELECT 1, 2) as q_1 + (SELECT 2, 3) as q2;
q_3 QUERY(a INT, b INT) = (SELECT 2, 3) as q_2 + UNION SELECT 9, 10;
q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;
q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;
它们都不是有效的SQL select语句

您可能需要以下内容:

q_3 QUERY(a INT, b INT) = (SELECT 1, 2) as q_1 + (SELECT 2, 3) as q2;
q_3 QUERY(a INT, b INT) = (SELECT 2, 3) as q_2 + UNION SELECT 9, 10;
q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;
q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;
这将创建一个4列查询类型变量,将
q_2
列附加到
q_1

或者类似于:

q_3 QUERY(a INT, b INT) = (SELECT 1, 2) as q_1 + (SELECT 2, 3) as q2;
q_3 QUERY(a INT, b INT) = (SELECT 2, 3) as q_2 + UNION SELECT 9, 10;
q_3 QUERY(a INT, b INT, c INT, d INT) = SELECT * FROM q_1 JOIN q_2;
q_3 QUERY(a INT, b INT) = SELECT* FROM q_1 UNION ALL SELECT * FROM q_2;
这将创建一个2列查询类型变量,将
q_2
行附加到
q_1