Hallo Forum,
habe mir soeben eine Query zusammengebastelt und hätte Fragen dazu.
1. Die Query funktioniert, ich erhalte die benötigten Datensätze, es fehlen aber bei der Auflistung der Datensätze die Zeilennummern. Hinzu komtm noch folgende Meldung:
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 65 in C:\Server\xampp\phpMyAdmin\libraries\display_tbl.lib.php on line 756
2. Die Query hat 3 Selects. Sieht das ganze grob Perfomancelastig aus?
SELECT
DATE_FORMAT(A.date, '%d.%m.%Y'), --- Hole das Datum von einem Blogeintrag
DATE_FORMAT(A.date,'%k.%i'),
A.blogeintrag,
A.thema,
A.blogingid,
A.blogerid,
B.mitglidsname, --- Und weitere Daten von einem Blogeintrag
count(C.blogingid), --- Hole die Anzahl der vorhandenen Kommentare von C zu den jeweiligen Blogeinträgen
(SELECT count(*) FROM Blogeintraege AS A INNER JOIN Mitglieder AS B ON A.blogerid=B.mitgliedsid WHERE B.Bedingung=1 AND B.priatvsphaere&1<<5!=32) AS Bloggers --- Hole die Anzahl der Blogeinträge, die von den Mitgliedern für alle Lesbar sind. Wenn das 5'te Bit nicht gesetzt ist, ist es dementsprechend Öffentlich.
FROM (Blogeintraege AS A INNER JOIN Mitglieder AS B ON A.blogerid=B.mitgliedsid)
LEFT JOIN Blogkommentare AS C ON A.blogingid=C.blogingid
WHERE (B.priatvsphaere&1<<5!=32 OR (B.priatvsphaere&1<<4!=16 AND B.priatvsphaere&1<<5=32 AND (SELECT count(*) FROM MeineBudies AS D WHERE A.blogerid=D.meineid AND D.freundid=12345)=1) ) AND B.Bedingung=1 --- Jetzt holt er alle Blogeinträge die öffentlich geschaltet sind oder er holt die Blogeinträge die vom Mitglied nur für Freunde freigeschalter worden sind. Sprich, wenn das 4'te Bit nicht gesetzt ist und das 5'te Bit gesetzt ist und ich zugeleich auch der Freund bin. Count von Freunde = 1.
GROUP BY A.blogingid ORDER BY A.date DESC LIMIT 50;
Ilja, ich weiß, ich gewöhne mit das "AS" noch ab :-)
DBMS mySQL > 5.0.x