JOIN子句用于連接多個表。日志服務支持同Project下跨Logstore、Logstore和MySQL、Logstore和OSS的聯合查詢。本文介紹JOIN子句的基本語法和示例。
語法
SELECT table.key
FROM table1
INNER|LEFT|RIGHT|FULL OUTER JOIN table2
ON table1.key=table2.key
日志服務支持您在SELECT語句中使用INNER JOIN子句、LEFT JOIN子句、RIGHT JOIN子句和FULL JOIN子句。更多信息,請參見JOIN。
JOIN方式 | 說明 |
INNER JOIN | 所有表存在交集時,返回滿足條件的SELECT結果。 |
LEFT JOIN | 即使右表(table2)中沒有匹配的數據,也從左表(table1)返回所有SELECT結果。 |
RIGHT JOIN | 即使左表(table1)中沒有匹配的數據,也從右表(table2)返回所有SELECT結果。 |
FULL JOIN | 只要一個表中存在匹配的數據,則返回滿足條件的SELECT結果。 |
參數說明
參數 | 說明 |
key | 日志字段、表達式等,參數值為任意數據類型。 |
table | table1為Logstore,table2為Logstore、MySQL數據庫或OSS Bucket。更多信息,請參見關聯MySQL數據源、關聯OSS數據源。 |
示例
在某個Project下,名為internal-diagnostic_log的Logstore用于記錄各個Logstore的消費延時、告警、采集等日志,名為internal-operation_log的Logstore用于記錄Project內所有資源的操作日志。您可以使用JOIN子句,聯合查詢兩個Logstore,從而獲取各個Logstore的消費組信息、延時時間和請求方法。
示例1:INNER JOIN
查詢和分析語句
* | SELECT "internal-diagnostic_log".consumer_group, "internal-diagnostic_log".logstore, "internal-operation_log".Latency, "internal-operation_log".Method FROM "internal-diagnostic_log" INNER JOIN "internal-operation_log" ON "internal-diagnostic_log".logstore = "internal-operation_log".logstore LIMIT 10000
查詢和分析結果
返回滿足條件的1328條數據。
示例2:LEFT JOIN
查詢和分析語句
* | SELECT "internal-diagnostic_log".consumer_group, "internal-diagnostic_log".logstore, "internal-operation_log".Latency, "internal-operation_log".Method FROM "internal-diagnostic_log" LEFT JOIN "internal-operation_log" ON "internal-diagnostic_log".logstore = "internal-operation_log".logstore LIMIT 10000
查詢和分析結果
從名為internal-diagnostic_log的Logstore中返回1328條數據。
示例3:RIGHT JOIN
查詢和分析語句
* | SELECT "internal-diagnostic_log".consumer_group, "internal-diagnostic_log".logstore, "internal-operation_log".Latency, "internal-operation_log".Method FROM "internal-diagnostic_log" RIGHT JOIN "internal-operation_log" ON "internal-diagnostic_log".logstore = "internal-operation_log".logstore LIMIT 10000
查詢和分析結果
從名為internal-operation_log的Logstore中返回1757條數據。
示例4:FULL OUTER JOIN
查詢和分析語句
* | SELECT "internal-diagnostic_log".consumer_group, "internal-diagnostic_log".logstore, "internal-operation_log".Latency, "internal-operation_log".Method FROM "internal-diagnostic_log" FULL OUTER JOIN "internal-operation_log" ON "internal-diagnostic_log".logstore = "internal-operation_log".logstore LIMIT 10000
查詢和分析結果
返回滿足條件的1757條數據。