Mailinglisten-Archive |
hallo, leider kann ich das komplette statement nicht bauen, da die anderen tabellen fehlen. ich nehme an, das hier ist die tng_people. meiner meinung nach solltest du diese tabelle einfach doppelt rein joinen: LEFT JOIN tng_people AS wExclude ON (f.wife=w.personID AND f.gedcom=w.gedcom AND et.tag="EVEN" AND description="Ehename") INNER JOIN tng_people AS wInclude ON (f.wife=w.personID AND f.gedcom=w.gedcom AND ( ( et.tag IS NOT NULL AND description<>"Ehename" ) AND !( et.tag="EVEN" AND description="Ehename" ) /* überflüssig, aber sicher ist sicher ;) */ ) ) da bei dem ersten join die richtigen zeilen NULL haben, setzt du eine condition hinten dran: WHERE wExclude.personID IS NULL wenn du nun jede person nur einmal haben willst, sagst du am ende: GROUP BY wInclude.personID ansonsten bekommst du auch die mehrmals, die in deiner zweiten condition (das inner join) mehrmals auftauchen. subselects solltest du vermeiden, da die immer langsam sind. währenddessen filtern conditionen in inner joins das resultset schon gut vor und geben dem where wenig zu tun. nicht zu vergessen, daß die filterfelder in den joins indiziert sein müssen :) beste grüße, andi -- Andreas Balke // Lead Developer Digiden GmbH • Agentur für Kommunikationslösungen In der Backfabrik • Saarbrückerstraße 37b • D-10405 Berlin Fon: +49 (30) 446 749 425 • Fax: +49 (30) 446 749 479 www.digiden.de -------------- nächster Teil -------------- Ein Dateianhang mit Binärdaten wurde abgetrennt... Dateiname : smime.p7s Dateityp : application/x-pkcs7-signature Dateigröße : 3236 bytes Beschreibung: S/MIME Cryptographic Signature URL : http://lists.mushaake.org/pipermail/mysql-de/attachments/20070522/213f88c9/attachment.bin -------------- nächster Teil -------------- _______________________________________________ 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