简化的表结构,所有 INT 列,并且没有标识列之外的 PK:
节点 (n)表:id
属性(一)表:id
, node_id
,type_id
类型 (t)表:id
,priority
我正在尝试选择一组属性,其中每个属性的各自节点的 type.priority 最低。虽然每个属性有多个node_id
,但我只想选择具有最低优先级值的属性:
a1 n1 t1 p0 *
a2 n1 t2 p1
a3 n2 t2 p1 *
a4 n2 t3 p2
这是我正在使用的基本查询,此时我也陷入困境:
SELECT *
FROM a
LEFT JOIN t ON a.type_id = t.id
GROUP BY node_id
我的第一个想法是使用聚合 MIN,但是我在匹配具有正确属性的 node_id 的最低优先级时遇到了问题。