You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
SQL 语法
JOIN 子句
复制全文
下载 pdf
JOIN 子句
JOIN 子句用于连表查询。日志服务支持跨日志项目查询、日志主题和 MySQL 外部数据源的联合查询。本文档介绍 JOIN 子句的基本的语法与典型示例。​
Demo 中心​
日志服务 Demo 中心提供了 SQL 语法 Demo,方便您快速体验功能。单击 SQL语法案例 立即体验。​
注意​
Demo 中心的数据为演示数据,请勿用于生产环境。​
语法格式​
JOIN 子句的语法格式如下。​
​
* |​
SELECT ​
Key​
FROM table1 AS alias1 ​
JOIN_TYPE table2 AS alias2​
ON JOIN_CONDITION​
​
参数说明如下:​
​
参数​
说明​
Key​
日志字段或表达式等。设置为字段时,格式为 table.key,即表别名.日志字段名,表示某个日志主题或数据库表中的某个日志字段。​
JOIN_TYPE​
JOIN 方式,日志服务支持的 JOIN 方式请参考下表。​
table​
日志主题或外部数据源的表。​
  • 如果是日志主题,则需指定日志项目名称,例如 project1.table1。​
  • 位于 JOIN 关键字之前的 table 必须为日志主题;位于 JOIN 关键字之后的 table,可以为日志主题或外部数据源的表。例如 table1 必须为日志主题,table2 可以是日志主题或外部数据源的表。​
  • 当名称中包含-/$*&%#@等特殊字符时,需使用双引号 "" 包裹,例如 "test-log.open_api"。​
alias​
表别名。​
JOIN_CONDITION​
连表查询的条件,应指定 JOIN 前后的主体通过某个字段进行关联。例如 alias1.key1=alias2.key2。​
说明​
JOIN_CONDITION 处需要指定表名时,应填写 AS 指定的列别名,请勿填写原始表名。​
​
JOIN 方式(JOIN_TYPE)说明如下:​
​
JOIN 方式​
说明​
LEFT JOIN​
无论右表(table2)中是否存在匹配成功的数据,均只从左表(table1)返回所有 SELECT 结果。​
RIGHT JOIN​
无论左表(table1)中是否存在匹配成功的数据,均只从右表(table2)返回所有 SELECT 结果。​
[INNER] JOIN​
返回两表的交集结果。其中 ,INNER 可省略。​
FULL JOIN​
返回两表的并集结果。​
​
示例​
示例 1:跨日志主题查询​
  • 场景​
  • 分析活跃用户的年龄分布。在 topic1 中统计访问量,并根据 userid/uid 在 topic2 中统计访问来源的年龄分布。​
  • 检索分析语句​
  • ​
    * | ​
    select ​
    count(*) as pv,​
    t2.age as age_group​
    from project.topic1 as t1 left join project.topic2 as t2 on t1.userid = t2.uid ​
    group by t2.age ​
    order by pv desc​
    ​
  • 检索分析结果​
  • ​
    age_group​
    pv​
    10~20​
    8000​
    20~30​
    5000​
    30~40​
    2000​
    ​
示例 2:跨日志项目查询​
  • 场景​
  • 分析活跃用户的年龄分布。在 project1 日志项目的 topic1 日志主题中统计访问量,并根据 userid/uid 在 project2 日志项目的 topic2 日志主题中统计访问来源的年龄分布。​
  • 检索分析语句​
  • ​
    * | ​
    select ​
    count(*) as pv,​
    t2.age as age_group​
    from project1.topic1 as t1 left join project2.topic2 as t2 on t1.userid = t2.uid ​
    group by t2.age ​
    order by pv desc​
    ​
  • 检索分析结果​
  • ​
    age_group​
    pv​
    10~20​
    8000​
    20~30​
    5000​
    30~40​
    2000​
    ​
示例 3:日志主题和 MySQL 联合查询​
  • 场景​
  • 分析活跃用户的年龄分布。在名为 topic1 的日志主题和名为 tls_external_store 的外部数据源中进行联合查询,两个数据源通过 userid 和 uid 字段关联。在 topic1 日志主题中统计访问量,并根据 userid/uid 在 tls_external_store 中统计访问来源的年龄分布。​
  • 检索分析语句​
  • ​
    * | ​
    select ​
    count(*) as pv,​
    t2.age as age_group​
    from project.topic1 as t1 left join tls_external_store as t2 on t1.userid = t2.uid ​
    group by t2.age ​
    order by pv desc​
    ​
  • 检索分析结果​
  • ​
    age_group​
    pv​
    10~20​
    8000​
    20~30​
    5000​
    30~40​
    2000​
    ​
​
最近更新时间:2026.08.28 15:12:48
这个页面对您有帮助吗?
有用
有用
无用
无用