你可以使用 UNION 或者 UNION ALL 来合并多个 SELECT 语句的结果。在你的情况下,你可能需要为每个需要查询的时间线创建一个 SELECT 语句,然后使用 UNION ALL 将它们合并在一起。
以下是一个例子:
SELECT * FROM timeseries_table
WHERE _m_name = 'basic_metric1' AND tag_value_at(_tags, 'host') = 'host001' AND tag_value_at(_tags, 'region') = 'hangzhou1'
UNION ALL
SELECT * FROM timeseries_table
WHERE _m_name = 'basic_metric2' AND tag_value_at(_tags, 'host') = 'host002' AND tag_value_at(_tags, 'region') = 'hangzhou2'
UNION ALL
SELECT * FROM timeseries_table
WHERE _m_name = 'basic_metric3' AND tag_value_at(_tags, 'host') = 'host003' AND tag_value_at(_tags, 'region') = 'hangzhou3'
LIMIT 10;
请注意,UNION 和 UNION ALL 的区别在于,UNION 会自动去除重复的结果,而 UNION ALL 会保留所有的结果,包括重复的。在你的情况下,如果你想要的是所有符合条件的结果(包括重复的),你应该使用 UNION ALL。
如果你的查询条件有重复的部分,可以使用 INTERSECT 或者 INTERSECT ALL 来保留重复的部分。