Mailinglisten-Archive |
Sebastian Mendel schrieb: > Ulrich Kretschmer schrieb: >> Hallo zusammen, >> >> die folgende Abfrage >> >> SELECT familyID, w.personID, w.lastname, w.firstname, et.tag, et.description, >> e.info FROM tng_families AS f >> INNER JOIN tng_people AS w ON (f.wife=w.personID AND f.gedcom=w.gedcom) >> LEFT JOIN tng_events AS e ON (w.personID=e.persfamID AND w.gedcom=e.gedcom) >> LEFT JOIN tng_eventtypes AS et ON e.eventtypeID=et.eventtypeID; >> >> verbindet die Tabellen >> tng_eventypes -> tng_events -> tng_people -> tng_families >> und soll so modifiziert werden, daß alle Personen geliefert werden, die das >> "event" Ehename *nicht* zugeordnet haben und ansonsten entweder gar keine >> "events" haben (et.tag=NULL) oder auch irgendwelche anderen >> (description<>"Ehename"). > > ich glaub ich hab null verstanden was du willst, vielleciht liegt es ander > Uhrzeit ... > > aber probier doch mla sowas wie > > ... > LEFT JOIN > tng_eventtypes AS et > ON e.eventtypeID = et.eventtypeID > AND et.tag = NULL > AND et.description = 'Ehename'; Selektierende Parameter sollten nicht im JOIN sondern bei WHERE stehen, also WHERE et.tag IS NULL OR ... vor allem auch OR, nicht AND denn es soll ja auch Datensätze liefern in denen et.tag NOT NULL ist dafür aber et.description != 'Ehename' Allerdings weiß ich nicht, wie man letzteres rausfiltert. Als Ansatz hab ich noch GROUP BY gesehen, aber es ist nicht garantiert, daß der DS mit 'Ehename' der letzte ist. Ich frage mich aber gerade ob die Tabellen ausreichend normalisiert sind. Oder waren die Beispielzeilen schon die Ausgabe? Gruß Rico _______________________________________________ Allgemeine Infos zur Liste: http://www.4t2.com/mysql/ Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de
php::bar PHP Wiki - Listenarchive