更新时间:2024-07-04 GMT+08:00
分享

SQL JOIN语法

JOIN子句可以关联查询两个或多个表数据,本文介绍JOIN子句的基本使用方法。

语法

select key 
from t1
LEFT|RIGHT|INNER JOIN t2
on t1.key=t2.key

当前日志服务支持LEFT JOIN、RIGHT JOIN和INNER JOIN三种JOIN子句方式。具体功能如下:

表1

JOIN方式

说明

LEFT JOIN

以左表(t1)的结果为基础,关联右表(t2)数据。
说明:

当表名为纯数字时,需要给表名加上双引号转换成字符串。例如:表名是123,JOIN语句中该表应写成“123”。

RIGHT JOIN

以右表(t2)的结果为基础,关联左表(t1)数据。

说明:

当表名为纯数字时,需要给表名加上双引号转换成字符串。例如:表名是123,JOIN语句中该表应写成“123”。

INNER JOIN

两个表的结果(elb1,elb2)交集数据

示例

有两个表,access表示主机的接入指标包含路径,时延,状态码,host为主机指标包含cpu和内存。通过JOIN可以关联接入和主机指标,查看相同主机的不同维度的指标情况。
  • LEFT JOIN
    1. 查询语句
      SELECT
      	"access".__time,
      	"access".host_ip,
      	"access".cost,
      	"host".cpu,
      	"host".memory
      FROM
      	log "access"
      	LEFT JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip
    2. 返回结果,总共60条数据。
  • RIGHT JOIN
    1. 查询语句
      SELECT
      	"access".__time,
      	"host".host_ip,
      	"access".cost,
      	"host".cpu,
      	"host".memory
      FROM
      	log "access"
      	RIGHT  JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip
    2. 返回结果,总共60条数据。
  • INNER JOIN
    1. 查询语句
      SELECT
      	"access".__time,
      	"host".host_ip,
      	"access".cost,
      	"host".cpu,
      	"host".memory
      FROM
      	log "access"
      	INNER  JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip
    2. 返回结果,总共45条数据。

相关文档