mysql 查询返回相关行

标签 mysql

我有一个带有字段的简单 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/

相关文章:

单击表单按钮时 PHP 服务器错误 500

mysql - 只显示一个参数的分组方法

PHP/MYSQL - 只能显示行中的一个元素,可能是问题?

PHP - 搜索带有数字/逗号的多行

Mysql数据库修复

mysql - 如何从一个字符串变量中提取唯一的嵌套变量名称?

mysql - 如何在 MySQL 中使用自动表别名生成查询结果?

mysql - 如何将 2 个表中的信息放入一个 sql 查询中?

php - 如何将文本字段输入自动保存为 utf8 编码数据?

mysql - sql 连接 2 个表的 x 列并合并字段 z