| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: [SQl] Anzahl der Beiträge mit timestamp des letzten abrufen. im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Frieden den Palästinensern. Ich verscuhe mit einem sql query die Anzahl aller Posts, die sich innerhalb von 4 Themen ...
![]() |
| | #1 (permalink) |
| Anzeige Frieden den Palästinensern. Ich verscuhe mit einem sql query die Anzahl aller Posts, die sich innerhalb von 4 Themen befinden, zu ermitteln + den timestamp des letzten posts. Mit diesem query bekomme ich als last_post_time aber NULL zurück... Code: SELECT COUNT(*) AS `count_posts`, MAX(time) AS `last_post_time` FROM `sj_posts` WHERE `sub` IN (1, 2, 3, 4) Tabelle sj_forums Code: CREATE TABLE `sj_forums` ( `id` int(10) unsigned NOT NULL default '0', `sub` int(11) NOT NULL default '0', `pos` int(11) NOT NULL default '0', `liststyle_subforums` tinyint(1) NOT NULL default '1', `list_topics` tinyint(1) NOT NULL default '1', `title` text collate latin1_general_ci NOT NULL, `desc` text collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; Code: CREATE TABLE `sj_posts` ( `id` int(11) NOT NULL, `sub` int(11) NOT NULL, `time` int(11) NOT NULL, `autor_id` int(11) NOT NULL, `title` text collate latin1_general_ci NOT NULL, `text` text collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; | |
| | |
| | #2 (permalink) |
| Moderator ![]() | Kann spontan auch nicht den Fehler in deiner Abfrage finden, es sei denn, der Zeitstempel ist tatsächlich überall NULL (was in der Tabellendefinition ja ausgeschlossen ist). Muss es denn unbedingt in einem Query passieren? Du könntest deine Abfrage sonst so bauen, dass sie dir alle gesuchten Datensätze zurückgibt: Code: SELECT `id`, `time` FROM `sj_posts` WHERE `sub` IN (1, 2, 3, 4) ORDER BY `time` DESC |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | gibt es eigentlich auch Einträge mit 'sub'<=4 ? Zitat:
Code: SELECT id FROM sj_posts WHERE time=(SELECT MAX(time) from sj_posts WHERE sub IN (1,2,3,4));
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | |
| | |
| | #4 (permalink) |
| warum nimmst du eigentlich nen integer als time? mysql hat doch date/time-funktionen... | |
| | |
| | #5 (permalink) |
| Themenstarter | @bLaCk-DrAg0n Weil ich den Zeitpunkt als timestamp speichern will. @CDW Dann bekomme ich ja die Anzahl des posts und den timestamp des letzten nicht mit. @LX Damit würde ich 100fach mehr daten abrufen als ich brauche. Naja. Die Funktion war gedacht für die Forenauflistungsschleife meiner Boardsoftware, die ich in Arbeit habe. Jeder Schleifendurchlauf (pro Unterforum ja eins) würde eine sql-Abfrage nach meiner Idee schicken und dann noch eine für die auszugebenden Details wie Anzahl der topics, dann in Folge noch ne Abfrage für die Anzahl der posts je topic, id des letzten posts und time. Das wäre ja schonmal pure Unterhaltung, eine satte Stunde zu Lachen für die zukünftigen exploit-Sucher. Anscheinend muss ich leider wie in phpbb die details der Anzahl der Beiträge in einem topic in einer topics_post_total-Spalte speichern sowie die gesamte Anzahl der posts in einem Forum in einer forum_posts_total-Spalte... So ein Schlag ins Gesicht! Und ich dachte, als ich das Tabellendesign von phpbb 2 sah: Was ein Trash! Tja, hätte ich ja vll auch richtig gelegen, wenn meine Forensoftware auf eine Verschachtelungsebene begrenzt wäre... Danke für eure Hilfe... |
| | |
| | #6 (permalink) | |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Zitat:
und COUNT würde extra ermitteln. Obwohl es so auch gehen sollte: Code: SELECT id,time,COUNT(SELECT id FROM sj_posts WHERE sub IN (1,2,3,4)) FROM sj_posts WHERE time=(SELECT MAX(time) FROM sj_posts WHERE sub IN (1,2,3,4));
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | |
| | |
| | #7 (permalink) |
| also .... Code: SELECT COUNT( `id` ) AS `post_num` , MAX( `time` ) AS `last_post` FROM `sj_posts` WHERE `sub` IN ( 1, 2, 3, 4 ) ; Code: ------------------------ | post_num | last_post | | 12 | 123459 | ------------------------ weiss echt nich wo das prob liegt :X | |
| | |
| | #8 (permalink) |
| Themenstarter | @CDW #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `id` FROM `sj_posts` WHERE sub IN (1,2,3,4)) FROM `sj_posts` WHERE `t' at line 1 Mein erster query hier im topic funktioniert jetzt. Lag wahrscheinlich an den fehlenden ` um time... Somit haut Black_Dragon's Lösung hin.. |
| | |
| | #9 (permalink) | |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Zitat:
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | |
| | |
| | #10 (permalink) |
| Themenstarter | Gott, es wird immer härter mit SQL. Fragt sich, wieso ich keine Doku dazu verstehe. Code: SELECT B.COUNT(*) AS `count_posts`, A.`id` AS `id`, A.`time` AS `time`, A.`autor_id` AS `autor_id` FROM `sj_posts` A, `sj_posts` B WHERE A.`sub`=1 ORDER BY A.`time` DESC LIMIT 0, 1 abzurufen mit samt `time`, `id` (id des Posts), `autor_id` (id des verfassers) und gleich noch die Anzahl aller Beiträge im topic anzurufen. Aber die Fehlermeldung hat schon Recht, dass das purer Bullshit ist. Gibt es bei der MySql diese Möglichkeit überhaupt? |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Information mit "Timestamp" kennzeichnen? | speedo | Cryptography & Encryption | 1 | 19.04.09 13:02 |
| Unix-Timestamp auf 1234567890 | brain21 | Linux/UNIX | 10 | 14.02.09 00:39 |
| MySQL parent path - children mit Anzahl deren children aus anderer Tabelle abrufen | Friedrich | Code Kitchen | 2 | 27.07.08 22:20 |
| [SQL] Anzahl aller Beiträge im Thema, timestamp & id des letzten posts in allen Themen | Friedrich | Code Kitchen | 0 | 09.12.07 11:02 |
| Oracle Timestamp to int? | Metathron | Code Kitchen | 0 | 04.12.07 13:57 |