문제

Drupal에서 만든 AA보기에서 중복 노드가 있습니다. 문제는 Node_Access 테이블의보기에서 조인이 수행되는 방식과 관련이있는 것으로 보입니다.

Devel을 사용하여 다음 쿼리가 표시됩니다.

    SELECT node.nid AS nid,
           node.language AS node_language,
           node_data_field_weekend.field_weekend_value AS node_data_field_weekend_field_weekend_value,
           node_data_field_weekend.field_weekend_value2 AS node_data_field_weekend_field_weekend_value2,
           node.type AS node_type,
           node.vid AS node_vid,
           node_data_field_weekend.field_weekend_loc_nid AS node_data_field_weekend_field_weekend_loc_nid
      FROM node node
 LEFT JOIN content_type_wwme_weekends node_data_field_weekend ON node.vid = node_data_field_weekend.vid
INNER JOIN node_access na                                     ON na.nid = node.nid
     WHERE (na.grant_view >= 1 AND
           (
           (na.gid = 0 AND na.realm = 'all') OR
           (na.gid = 0 AND na.realm = 'domain_site') OR
           (na.gid = 0 AND na.realm = 'domain_id'))) AND
           (
           (
           (node.type IN ('wwme_weekends')) AND
           (node.status <> 0 OR
           (node.uid = 0 AND 0 <> 0) OR 0 = 1)) AND
           (DATE_FORMAT(STR_TO_DATE(node_data_field_weekend.field_weekend_value, '%Y-%m-%dT%T'), '%Y-%m-%d') > '2010-01-10') )
  ORDER BY node_data_field_weekend_field_weekend_value ASC LIMIT 0, 5

Node_Access 테이블에 가입하면 노드에 여러 개의 node_access 레코드가 있고, 하나는 domain_site의 영역과 domain_id 영역을 가진 하나의 레코드가 있기 때문에 다른 레코드가 복제됩니다.

데이터 종류는 다음과 같습니다 (일부 열은 간결하게 끊어짐) :

nid     gid    realm        grant_view  grant_update    grant_delete
73      0      domain_id    1           1               1
73      0      domain_site  1           0               0
988     0      domain_id    1           1               1
988     0      domain_site  1           0               0
90      0      domain_id    1           1               1

영역은 어떤 목적에 적합합니까? 이 레코드가 어떻게 채워지고, 가장 중요한 것은 어떻게이를 해결할 수 있습니까? SQL이 맞습니까?

도움이 되었습니까?

해결책 2

대답은 내가 생각했던 것보다 훨씬 더 평범했습니다.

보기에서 "고정 노드"구성 옵션을 사용하면 Dupes가 나옵니다.

다른 팁

멀티 사이트 액세스가 켜져 있고 도메인 액세스 모듈을 사용하는 Drupal 사이트가있을 때 영역이 적합하다고 생각합니다.http://drupal.org/project/domain) 도메인 액세스 모듈이 필요하지 않으면 제거하면이 중 일부를 해결할 수 있습니다. 필요한 경우 Node Access (액세스 및/또는 도메인보기 모듈을 사용하여보기에 필터를 추가해야 할 가능성이 높습니다. 그것은 당신이 올바른 방향으로 향할 것입니다. 나는이 모듈과 직접 일한 적이 없습니다. 방금 모듈 코드와 프로젝트 페이지를 살펴 보았습니다. 행운을 빕니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top