JDBC 维表 Join

具体JOIN语法:

  1. SELECT {<other_view_name>.<column_name> [AS <alias_name>]}[, ...n],
  2. {<jdbc_table_name>.<column_name> [AS <alias_name>]}[, ...n]
  3. FROM <other_view_name>
  4. LEFT JOIN <jdbc_catalog_name>.<jdbc_db_name>.<jdbc_table_name>
  5. FOR SYSTEM_TIME AS OF <other_view_name>.<proctime_column_name>
  6. ON {<other_view_name>.<column_name> = <jdbc_table_name>.<column_name>}[AND ...n];

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

  1. SELECT V3.groupId,
  2. V3.resourceId AS resource,
  3. V3.changeType,
  4. V3.status,
  5. V3.userId,
  6. Music_Mlog.id,
  7. Music_Mlog.`type` as tt_type,
  8. Music_Mlog.content,
  9. Music_Mlog.updateTime,
  10. Music_Mlog.location,
  11. Music_Mlog.talkId
  12. FROM V3
  13. LEFT JOIN `user_social`.`music_usersocial_bj_dp`.`Music_Mlog` FOR SYSTEM_TIME AS OF V3.proctime
  14. 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 表,则实时群里找值班同学协助解决。