跨引擎SELECT 允许在一条SELECT 语句中,
使用不同引擎的表进行关联查询、
或
条件查询等,
其语法遵循GBase8a 引擎的SELECT 语法,
本章仅对引入HIVE 引擎
后,新增的语法,以及由于跨引擎查询而消减的语法进行说明。如下是几个跨引擎
SELECT 的示例。
示例中用到的表及数据:
CREATE TABLE h1(a INT, b INT, c INT) ENGINE='HIVE';
CREATE TABLE t1(a INT, b INT, c INT) ENGINE='EXPRESS';
INSERT INTO h1 VALUES(1, 2, 1), (2, 3, 2), (3, 3, 3);
INSERT INTO t1 VALUES(1, 2, 1), (2, 3, 2), (4, 3, 3);
示例:跨引擎SELECT 示例,跨引擎JOIN:
gbase> SELECT t1.b, h1.c FROM t1, h1 WHERE t1.a = h1.a;
+------+------+
| b | c |
+------+------+
| 3 | 2 |
| 2 | 1 |
+------+------+
2 rows in set
示例:跨引擎SELECT 示例,跨引擎条件:
gbase> SELECT t1.c FROM t1 WHERE t1.a in (SELECT a from h1 WHERE h1.b > 1);
+------+
| c |
+------+
| 1 |
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 780
| 3 |
+------+
2 rows in set
gbase> SELECT h1.c FROM h1 WHERE h1.a in (SELECT a from t1 WHERE t1.b > 1);
+------+
| c |
+------+
| 2 |
| 1 |
+------+
2 rows in set