我有一个带有字段的简单 mysql 表 ref_table
node_id
topic_id
ref_id
Ref_id 指的是正在存储的实际对象。可能有任意数量的行具有相同的 ref_id,以及不同的 node_id 和 topic_id 组合。 我现在需要检索存在记录 (node_id, ref_id=A) 的所有不同的 node_id 值,但受到 (NODE_ID, TOPIC_ID, ref_id=A) 存在记录的约束 - 其中 NODE_ID 和 TOPIC_ID 是我的变量参数。 换句话说,我试图找到具有 NODE_ID 和 TOPIC_ID 特定组合的所有对象,然后返回该对象出现的所有节点。看起来很简单,但我无法理解查询语法来做到这一点。如果查询本身返回 NODE_ID 就可以了。
如果查询可以返回 node_id 列表以及发现 node_id 匹配的次数,那就更好了。
最佳答案
试试这个:
SELECT r2.node_id, COUNT(*) AS c
FROM ref_table r1
INNER JOIN ref_table r2 ON r1.ref_id = r2.ref_id
WHERE r1.node_id = [node]
AND r1.topic_id = [topic]
GROUP BY r2.node_id;
关于mysql 查询返回相关行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21583870/