这是我必须从存储直接图形的数据库中检索的功能。我有一个带有列,图形名称和graphID的图形表。以及一个节点表,该表的列为nodeid,graphid,并且具有exitnode和entrynodes。我尝试使用count语句来计算每个图必须返回名称的节点数,但是它一直返回空集。有人可以查看我的查询并告诉我我在做什么错。

SELECT
    graphName
  FROM
    graphs
  WHERE graphID
    IN (
      SELECT
         graphID
       FROM
         nodes
       WHERE count(entryNode, exitNode) = 2
    );

最佳答案

您可以使用nodeid:

SELECT g.graphName, COUNT(DISTINCT nen.nodeid), COUNT(DISTINCT nex.nodeid)
FROM graphs g
  JOIN nodes nen on nen.graphID = g.graphID AND nen.entryNode=1
  JOIN nodes nex on nex.graphID = g.graphID AND nex.exitNode=1
GROUP BY g.graphName
HAVING COUNT(DISTINCT nen.nodeid)=2 and COUNT(DISTINCT nex.nodeid)=2

关于mysql - MYSQL查询使用计数功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40852286/

10-10 22:07