Eindeutigkeit von Werten in einer View
am 12.10.2009 - 12:27 Uhr in
Hallo,
ich habe das GMap und das Location Modul installiert und moechte nun eine View bauen die mir alle Orte ausgibt die in den Nodes eingetragen wurden.
Soweit scheint es auch alles zu klappen, ich habe ein View mit Tabellenansicht und dem Feld "Ort: City". Eingeschraenkt ist die View ueber Filter auf einen bestimmten Nodetype.
Da ich jeden Ort nur einmal in der Auflistung sehen moechte habe ich bei "Eindeutig" "Ja" gesetzt.
Nun habe ich eine Liste mit ganz vielen leeren eintraegen (nicht alle Nodes haben einen Ort angegeben) und irgendwann kommt dann auch mal ein Eintrag wo was drin steht.
Folgendes SQL spuckt mir die Vorschau aus:
SELECT DISTINCT(node.nid) AS nid,
location.city AS location_city
FROM node node
LEFT JOIN location_instance location_instance ON node.vid = location_instance.vid
LEFT JOIN location location ON location_instance.lid = location.lid
WHERE node.type in ('testnode')
So wie ich es sehe gibt es hier nichts was die Eindeutigkeit der Werte steuert, ich haette ein group auf den Ort oder aehnliches erwartet.
Kann mir jemand sagen was ich falsch mache oder wo ich noch was schrauben muss?
Gruss Martin
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi, ein Node ein Ort,
am 14.10.2009 - 15:17 Uhr
Hi,
ein Node ein Ort, ja?
Dann reicht das DISTINCT(node.nid) völlig aus.
---
Viele Grüße,
Kars-T
Viele Grüße,
Kars-T
Ja, ein Node ist ein Ort ...
am 14.10.2009 - 18:10 Uhr
Ja, ein Node ist ein Ort ... und genau darin besteht das Problem. Ich moechte nicht die node.id eindeutig haben sondern den Ort.
Also es kann z.B. 5 Nodes aus Koeln geben, 10 aus Berlin und 3 aus Muenchen
Jetzt moechte ich eine Luste generieren die mir nur die Staedte anzeigt ... und zwar eindeutig.
Ich moechte quasi eine Liste mit den Staeden machen und von da aus dann nachher auf eine andere View ... mit allen Eintraegen aus der Stadt verweisen.
Gruss
Martin
Okay, aber das ist ein node
am 14.10.2009 - 18:43 Uhr
Okay, aber das ist ein node View oder? Mach mal einen über "Ort". Dann macht der so eine Abfrage bei mir:
SELECT DISTINCT(location.lid) AS lid
FROM location location
Und mit Views an sich hat das nichts zutun. Das liegt in der Implementation des Views Handlers, was da passiert. Wobei GROUP BY so eine Sache ist für Views. Es gibt dafür aber auch ein Modul.
http://drupal.org/project/views_groupby
Aber auch das zeigt, das du Views hier als API verstehen solltest. Um über Städte eindeutig zu selektieren braucht es halt einwenig Arbeit.
---
Viele Grüße,
Kars-T
Viele Grüße,
Kars-T