Mailinglisten-Archive |
On Friday 09 July 2004 16:00, Sebastian Mendel wrote: > SELECT (SELECT COUNT(*) FROM ...) + (SELECT ...) + ... > Danke, hätte ich eigentlich auch selbst drauf kommen können, allerdings werden hier Datensätze evntl. doppelt gezählt! Verwende Sybase und möchte nicht die gesamte Datenmenge holen deshalb kein num...() Abfragen auf Anwendungsebene möglich. Das Problem ist allegemein so: Ein Dokument kann mehrere Publisher haben, die Publisher sind aber unter Umständen hierarchisch geordnet. Etwa so Dokument( Dok_ID, Titel) Publisher( Dok_ID, Cor_ID ) Corporation( Cor_ID, Name, IsPartOf) IsPartOf verweist dabei auf sich selbst, angenommen wir wollen rausfinden, welche Dokument von einer Corporation und! ihren Unter-C. verlegt wurden: (es geht auch mit left joins, scheint aber wesentlich langsamer zu sein) //erste Ebene, direkt verlegt select P.Dok_ID from Publisher P where P.Cor_ID=1000 union //2. Ebene direkt über IsPartOf zugänglich select P.Dok_ID from Publisher P, Corporation C where P.Cor_ID=C.Cor_ID and C.IsPartOf=1000 union //3. Ebene mit selfjoin select P.Dok_ID from Publisher P, Corporation C, Corporation C1 where P.Cor_ID=C1.Cor_ID and C.Cor_ID=C1.IsPartOf and C.IsPartOf=1000 usw. nun würde ich gerne die Anzahl direkt mit SQL erhalten... und temp-tables möchte ich dazu nicht benutzen, views kann ich mit union nicht erzeugen (sybase) !? Grüße. -- Konstantin Rekk Berlin phone: +49 (0) 30 48623452 mobil: 0176 2100 6000 www.rekk.de www.tanden-aikido.de
php::bar PHP Wiki - Listenarchive