我正在尝试选择每个人使用的机器和kpi的列表。
KPIs
- id ('123')
MACHINE
- id ('567')
KPIDATA
- key ('k.123.i.567.a.000')
KPIDATA行表示机器567 使用 kpi 123 。如何在一个查询中选择它?
答案 0 :(得分:1)
假设Kpidata key
字段的格式相同,即k.123.i.567.a.000
此查询可能会有所帮助
SELECT
k.`id`,
m.`MACHINE`,
kd.`key`
FROM
KPIs as k,
MACHINE as m,
KPIDATA as kd
WHERE
k.`id` = SUBSTR(kd.`key`,LOCATE('.',kd.`key`)+1,3)
AND
m.`MACHINE` = SUBSTR(kd.`key`,LOCATE('.i.',kd.`key`)+3,3)
的工作演示
答案 1 :(得分:0)
SELECT k.id AS key, m.id AS machine
FROM KPIs k, MACHINE m
WHERE EXISTS (
SELECT 1 FROM KPIDATA x
WHERE x.key LIKE 'k.' + k.id + '.i.' + m.id + '.a.%' );