JDBC 维表 Join

具体JOIN语法:


SELECT {<other_view_name>.<column_name> [AS <alias_name>]}[, ...n],

{<jdbc_table_name>.<column_name> [AS <alias_name>]}[, ...n]

FROM  <other_view_name>  

LEFT JOIN  <jdbc_catalog_name>.<jdbc_db_name>.<jdbc_table_name>  

FOR SYSTEM_TIME AS OF <other_view_name>.<proctime_column_name> 

ON {<other_view_name>.<column_name> = <jdbc_table_name>.<column_name>}[AND ...n];

以上基本语法从字面意思可以看到大概写法,接下来我们给出一个具体例子加以说明:

SELECT V3.groupId,
V3.resourceId AS resource,
V3.changeType,
V3.status,
V3.userId,

Music_Mlog.id, 
Music_Mlog.`type` as tt_type,
Music_Mlog.content,
Music_Mlog.updateTime,
Music_Mlog.location,
Music_Mlog.talkId
FROM V3
LEFT  JOIN `user_social`.`music_usersocial_bj_dp`.`Music_Mlog` FOR SYSTEM_TIME AS OF V3.proctime
ON V3.resourceId = Music_Mlog.id;

[V3 对应语法中 other_view_name]

[resource 对应语法中 alias_name]

[Music_Mlog 对应语法中 jdbc_table_name]

[user_social 对应语法中 jdbc_catalog_name]

[music_usersocial_bj_dp 对应语法中 jdbc_db_name]

[proctime 对应语法中 proctime_column_name]

这里特别说明下,一般时间这个字段是在 other_view_name 中用 PROCTIME() as proctime 定义。

根据例子,我们就能很容易对应上 JDBC 维表 JOIN 的写法。语法中将需要替换的部分替换后,其余语法按照语法定义中照搬即可。

这里,用户比较困惑的点应该是怎样去找到语法中 “..”这部分的写法。具体方法如下:

在 SQL 编辑页面的右上角找到一个叫”外部数据”的 tab 并点击 在弹出的页面中”类型”选择 “ddb” 接下来页面会出现”表名”和”catalog”两行内容 将你需要 JOIN 的 dd b表名复制进去,然后点击”生成SQL” 在生成的 SQ L中,将”INSERT INTO” 和 “SELECT” 之间的字符复制出来即可 如果没有找到相应的 ddb 表,则实时群里找值班同学协助解决。