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 的写法。语法中将需要替换的部分替换后,其余语法按照语法定义中照搬即可。