2013-08-27 58 views
2

我有一個圖形代表一個MySQL表爲:如何僅獲取mySQL圖形上的傳入邊緣?

uidFrom, uidTo 
    1  4 
    4  1 
    1  5 
    5  1 
    6  1 <- only incoming edge 

如何獲得只有「6,1」對,只有「1」作爲輸入?我的意思是,如何查詢唯一的傳入邊緣節點「1」(不是傳入和傳出像4或5)?

在此先感謝;

回答

1

你可以這樣說:

SELECT uidFrom, uidTo 
FROM Graph g 
WHERE NOT EXISTS (
    SELECT * FROM Graph rev WHERE rev.uidFrom=g.uidTo AND rev.uidTo=g.uidFrom 
) 

這裏是一個demo on sqlfiddle

+0

它完美的作品。但是如何表現? –

+1

@ vicmota1性能取決於你的索引:如果你有'(uidFrom,uidTo)'上的索引或'uidFrom'和'uidTo'上的兩個單獨索引,你應該沒問題。 – dasblinkenlight

相關問題