![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 287
|
Ich habe folgenden Query: Code: $query = 'SELECT ' .
'n.id, n.seo, n.headline, n.post, n.postdate, n.author,' .
'COUNT(c.id) comments ' .
'FROM newspost n ' .
'LEFT JOIN newscomment c ON n.id = c.newsid ' .
'WHERE n.postdate < ? AND n.textstatus = ? ' .
'GROUP BY n.id ' .
'ORDER BY n.postdate DESC';
Jetzt werde ich aber allmählich von Kommentarspam zugeschissen und möchte Kommentare per E-Mail Benachrichtigung freischalten. Dazu gibt es in der Tabelle newspost das Feld textstatus was 0 oder 1 sein kann. Mit dem obigen Query bekomme ich alle dazugehörigen Kommentare, allerdings werden dadurch auch Kommentare dazugerechnet die auf Status 0 sind. Ich möchte mit dem COUNT aber nur die Anzahl der aktiven Kommentare zusammengezählt haben. Das WHERE auszubauen hilft nichts. Geht das nur mit zwei Queries? |
| | |
| | Nach oben #2 |
| Jonas Registriert seit: 03.06.2006
Beiträge: 244
|
Erstmal kann man das strukturiert viel besser angucken: SQL Code:
Ich verstehe dich gerade nicht. Soll jetzt bei den Kommentaren auf Status 0 überprüft werden, oder bei den Posts?
__________________ Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
| | |
| | Nach oben #4 |
| Jonas Registriert seit: 03.06.2006
Beiträge: 244
|
Kannste mal nen kleinen MySQL-Dump geben, hab Lust ein bisschen zu probieren. Achja, welche MySQL-Version?
__________________ Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
| | |
| | Nach oben #8 | |||
| Gast
Beiträge: n/a
| Zitat:
um gar nicht erst in versuchung zu kommen, solche status-spalten für etwas anderes als ihren ursprünglichen zweck zu verwenden, bietet sich der datentyp ENUM an - macht die datenbank-daten auch besser lesbar und vermeidet magic numbers. Zitat:
COUNT darf einen (einschränkenden) ausdruck behinhalten, daher lautet die richtige lösung: Code: SELECT COUNT(c.textstatus=1 [AND foo=bar [OR [...]]] ) ... axo Geändert von axo (31.03.2007 um 10:55 Uhr) | |||
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [PHP] FTP-Funktionen in PHP nutzen | MrNiceGuy | Tutorials | 0 | 24.05.2006 14:18 |
| Auf welcher Verbindungsgeraden (der Eckpunkte) eines Polygons liegt ein Punkt | Ben | Allgemeine Java-Programmierung | 3 | 17.03.2006 09:22 |
| Textfelder auf verschiedenen Tabs per Observer synchronisieren | Sayang | Desktop-Applikationen und Grafik | 2 | 05.12.2005 19:14 |
| [PHP] Aktuell gespielten Titel von XMMS auf einer Webseite in einer Grafik anzeigen | Corvin | Tutorials | 0 | 28.11.2005 16:26 |
| Login auf mehreren Domains | Homepagespeicher | PHP-Programmierung | 17 | 21.08.2005 16:54 |