2012-07-29 1 views
0

ID가 형식 USERID_LINKID에있는 테이블에 합류 문제 : 게시물 배우에 대한 아니라 링크를 예상대로 내가 결과를 얻을 수FQL : 나는 PHP SDK를 통해 다음과 같은 FQL 실행하고

{ 
"posts" : "SELECT post_id, actor_id, message, type FROM stream WHERE type = '80' AND message != '' AND filter_key in (SELECT filter_key FROM stream_filter WHERE uid='588853265' AND type='newsfeed') AND is_hidden = 0 ORDER BY created_time DESC LIMIT 50", 

"actors" : "SELECT uid,name FROM user WHERE uid IN (SELECT actor_id FROM #posts)", 

"links" : "SELECT owner, url FROM link WHERE link_id IN (SELECT post_id FROM #posts)" 
} 

을 (결과가 비어 있습니다). 문제는 링크 테이블이 정상적인 ID를 사용하지만 '스트림'의 '게시물'에 ID가 USERID_LINKID 형식으로 표시된다고 생각합니다.

나는 행운과 함께 작동하도록 substr()과 strlen()을 가지고 놀았습니다.

답변

1

스트림 게시물에서 link_id을 얻는 방법이없는 것 같습니다. 귀하의 검색어는 게시물의 아이디를 얻었지만 링크는 아닙니다.

그러나 나는 당신이 필요하다고 생각하지 않습니다. #links 하위 쿼리를 제거하고 #posts 하위 쿼리의 SELECT 문에 attachment을 추가하십시오. 링크 URL은 attachment->media->url입니다.

또 다른 비판 : #actors에 대한 하위 쿼리를 추가 할 수 있습니다. stream 테이블에 의해 리턴 된 actor_id은 사용자, 페이지 또는 그룹 일 수 있습니다. FQL은 사용자 만 해결합니다. 그룹 및 페이지별로 게시 된 링크에 대해 알 수없는 ID가 표시됩니다.