Frage

Ich erhalte doppelten Knoten in einer Ansicht, die ich in Drupal erstellt habe. Es scheint, die Frage der Art und Weise in Beziehung steht die Verbindung wird in Ansichten für die node_access Tabelle.

Mit devel, sehe ich die folgende Abfrage:

    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

Schließen Sie sich der an die node_access Tabelle wird die anderen Datensätze verursacht zu duplizieren, da es mehrere node_access Aufzeichnungen zu einem Knoten sind, eine mit dem Reich der domain_site und einen Datensatz mit dem Reich der domain_id.

Die Daten Art sieht wie folgt aus (mit einigen Spalten der Kürze halber geschnitten):

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

Welchen Zweck hat das Reich fit? Wie werden diese Aufzeichnungen bevölkert, und vor allem, wie kann ich dieses Problem beheben? Ist das SQL richtig?

War es hilfreich?

Lösung 2

Die Antwort war offenbar viel mehr banal als ich dachte:

Mit der „distinct Knoten“ Konfigurationsoption unter Ansichten, diese Betrogenen nehmen.

Andere Tipps

Ich denke, die Bereiche passen, wenn Sie eine Drupal-Seite mit Multi-Site-Zugriff aktiviert ist und Sie das Domain-Access-Modul mit ( http://drupal.org/project/domain ) Wenn Sie nicht der Domain-Access-Modul Deinstallation benötigen könnten einige dieser lösen. Wenn Sie es brauchen werden Sie wahrscheinlich Notwendigkeit, einen Filter zu Ihrer Ansicht mit dem Knoten Zugriff hinzufügen: Zugang und / oder verwenden Sie die Domain Views-Modul. Das sollte erhalten Sie in der richtigen Richtung. Ich habe noch nie mit diesen Modulen selbst gearbeitet. Ich ging gerade durch den Modulcode und Projektseiten. Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top