DB_query ()를 사용하여 SQL UNION을 만든 다음 theme () 함수를 사용하여 호출기를 포함한 테이블 레이아웃으로 렌더링했습니다.
사용자에게는 기본보기처럼 보입니다. 다른 장점은 쿼리를 많이 최적화 할 수 있다는 것입니다. 나는 "내 친구의 활동"을 보여주고 있는데, 만약 당신이 그것에 대한 뷰를 사용한다면 그것은 당신의 친구리스트를 생성하고 당신이 50 개 또는 100 개 이상의 레코드를 가지고 있다면 매우 느린 SQL "IN"절에서 그것을 사용할 것입니다.
지난 x 일 동안 사이트에 로그인 한 사람으로 만 친구 목록을 좁힐 수있었습니다.
이것은 코드 샘플입니다.
// Two queries are required (friendships can be represented in 2 ways in the
// same table). No point making two db calls though so a UNION it is.
// Build up the first query.
$query = db_select('flag_friend', 'f')
->condition('f.uid', $account->uid)
->condition('u.login', $timestamp, '>');
$query->addExpression('f.friend_uid', 'uid');
$query->innerJoin('users', 'u', 'u.uid = f.friend_uid');
// Build up the second query.
$query2 = db_select('flag_friend', 'f')
->condition('f.friend_uid', $account->uid)
->condition('u.login', $timestamp, '>');
$query2->addExpression('f.uid', 'uid');
$query2->innerJoin('users', 'u', 'u.uid = f.uid');
// Return the results of the UNIONed queries.
return $query->union($query2)->execute()->fetchCol();