2016-12-13 1 views
0

나는 orientdb를 사용하고 있으며, 다음에 나오는 모든 정점을 확장 중입니다. 이제 특정 꼭지점을 따르고 있는지 확인하고 싶습니다.OrientDb 가장자리가 한 방향으로 존재하는지 확인하십시오.

SELECT @rid, name FROM (SELECT expand(in('Follow')) FROM users WHERE @rid = #123:8 LIMIT 20) 

을 그리고 난

SELECT @rid as userRid, name, if(SELECT FROM follow where out = #123:8 And in = userRid, 1, 0) as followed FROM (SELECT expand(in('follow')) FROM users WHERE @rid = #123:8 LIMIT 20) 

어떻게 예상 결과를 달성하기 위해 어떤 생각을하려고 노력 해요 :

쿼리 내가 사용하고?

+0

어떤 버전을 사용하고 있습니까? –

+0

나는 orientdb를 사용하고있다. 2.2.0 – Noobish

+0

나는 MySQL 배경에서 왔고 mysql 내부의 쿼리는 작동하지만, orientdb에서는 작동하지 않는다. – Noobish

답변

1

이 시도 :

select from <your rid> where out('Follow')[email protected] contains <person rid> 

그것이 미카엘라 Bonizzi의 대답,

안부

+0

작동한다. 그러나 하위 쿼리로 사용하는 방법은 무엇입니까? 같이 사용하고 싶습니다 다음과 같이 FROM (선택 확장 (in ''follow ')으로 out ('Follow '). rid에 , 1, 0이 포함되어 있음)을 선택하면 userRid,) WHERE @rid = # 123 : 8 LIMIT 20 사용자로부터) – Noobish

0

좋아 도움이되기를 바랍니다, 나는 지금이

SELECT @rid, name, if(eval("in('Follow') contains #123:8"), 1, 0) as followed FROM (SELECT expand(in('Follow')) FROM users WHERE @rid = #123:8 LIMIT 20) 

처럼 해결하기 위해 관리 이 사람은 내 팔로워를 따라 가는지 나에게 말해 줄 것이다. 그래서 Michela의 대답은 정확합니다.

0

하자 (소스) -> (대상)

당신이 별칭을 사용하여 얻을 기능을 확장 할 수 있습니다, 가장자리가

SELECT IN('EDGE_CLASS').sourceProperty FROM (SELECT FROM Target WHERE targetProperty = 'value') 

SELECT OUT('EDGE_CLASS').targetProperty FROM (SELECT FROM Source WHERE sourceProperty = 'value') 

또는 양 방향에 있는지 확인 할 수 있습니다 관심 재산.

SELECT EXPAND(IN('EDGE_CLASS').sourceProperty) AS sourceProperty FROM (SELECT FROM Target WHERE targetProperty = 'value') 
관련 문제