2016-11-28 77 views
0

這是一個函數,我必須從存儲直接圖的數據庫中檢索。我有一個圖表,包括columsn,圖表名稱和graphID。以及具有列nodeid,graphid並具有exitnode和entrynode的節點表。我嘗試使用count語句來計算每個圖必須返回名稱的節點數,但它一直返回空集。有人可以查看我的查詢並告訴我我做錯了什麼。使用計數功能的MYSQL查詢

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

您可能需要更加明確。 'entryNode'和'exitNode'是'graphs'或'nodes'中的一列嗎? –

+0

它是一個節點中的列,圖列只有graphName和graphID – Ace8

+0

從圖中選擇g.graphname,(從節點n中選擇count(*),其中n.graphid = g.graphid)g – maraca

回答

0

您可以使用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